gq長い行に貼り付けると、それが機能しないことに気づきました。たとえば、aと、を使用するtextwidth=72とformatoptions=tcroqbnl、gqはこれをラップすることを拒否します(挿入モードでは、ラベルの内容全体を貼り付けてから、挿入モードを終了しますESC):
<label for="contact_reason_1">To get assistance with or to confirm a tire replacement recommendation</label>
(たとえば、「to」の後に)改行を追加すると、改行されます。面白いのは、私がラインを元に戻すと、それが再び幸せにラップされることです。だからVIMはどういうわけか「ああ、これは1つのペーストです、それを包まないでください」を覚えているようです。
その機能をオフにするにはどうすればよいですか?コマンドモードのgqを常に機能させたいのですが。をl取り出すことはformatoptions役に立たなかったようです(そして、そうすべきではありません、これは挿入モードではありません)。
明確化
はい、特にモーションコマンドを使用していgq<Right>ます。formatexprとformatprog両方が設定されていません。重要な場合、これはDebian GNU / Linuxのgvim、vimバージョン7.2p284にあります。
再現する手順
- 開いているファイルにgvimをポップアップします。
- を押しiて挿入モードに入り、次のように入力します
This is a long line. A long line. But not wrappable yet. Or yet. Soon. - を押しESCてから、を押しIます。メモを入力
Now putting text in front of the long line.してください:最後の期間の後にスペースがあり、このメモがここにある場合を除いて、SOにそれを表示させることはできません。楽しい。 - を押しESCてから、を押しAます。注を入力してください:そして、同じSO問題の前のスペース。
And some after. - ESC最後にもう一度押します。今試してみてくださいgq<Left>、それはラップするだけであることに注意してください
And some after.; 残りの行をvimで折り返すことはできません(挿入モードに入り、手動で改行を行わないと、機能します)。
この状態を修正することは実行可能です。「now」の後に改行を入れてからundoを押すと、行の折り返しが再び機能します。WTF。