3


1

Vimで長い行をラップしますか?

長い行に貼り付けると、[。kbd]#gq#が機能しないことに気付きました。 たとえば、 textwidth = 72`と formatoptions = tcroqbnl`の場合、gqはこれをラップすることを拒否します(挿入モードでは、ラベルの内容全体を貼り付け、[。kbd]#ESC#で挿入モードを終了しました)。

                To get assistance with or to confirm a tire replacement recommendation

改行を(たとえば "to"の後に)追加すると、折り返されます。 おもしろいことは、もし私がラインを一緒に戻すならば、それは再びそれを幸福に包むだろうということです。 そのため、VIMはどういうわけか「ああ、これは1つのペーストです。ラップしないでください」と覚えているようです。

どのように私はその機能をオフにするのですか? コマンドモードのgqを_always_にしたいのですが。 formatoptions`から l`を取り出すことは役に立たなかったようです(そして、これは挿入モードではありません)。

'' '' '

明確化

はい、モーションコマンド、特に[.kbd]#gq#を使用しています。 formatexpr`と formatprog`は両方とも設定されていません。 問題があれば、これはDebian GNU / Linuxのgvim、vimバージョン7.2p284にあります。

再現する手順

  1. 開いているファイルにgvimをポップアップします。

  2. [.kbd]#i#を押して挿入モードに入り、入力します これは長い行です。 長い列。 しかし、まだラップできません。 またはまだ。 すぐに。

  3. [.kbd]#ESC#を押し、次に[.kbd]#I#を押します。 Type 「テキストを長い行の前に配置します。」 FUN._

  4. [.kbd]#ESC#を押し、次に[.kbd]#A#を押します。 「あとでいくつか」と入力します。_note:space そして、同じSO問題の前に。

  5. 最後にもう一度[.kbd]#ESC#を押します。 [.kbd]#gq#を試してください。注意してください 「そしてあとで」をラップします。行の残りを折り返すためにvimを取得できません(挿入モードに入り、手動で改行することなく動作します)。

この状態の修正は実行可能です。 「今」の後に改行を入れてから元に戻すを押すと、行の折り返しが再び機能します。 WTF.

2 Answer


7


gq isn’t enough to wrap the text. You have to give ラップするモーション([.kbd] g [。kbd] q [。kbd]#j#など)、または[.kbd] g で現在の行をラップするように指示する[.kbd] q [。kbd]#q#。 誤入力しているだけではありませんか?

そうでない場合、 formatexpr`および formatprg`オプションは、もしあれば、どのように設定されますか?

更新 +問題は、 `formatoptions`のb設定です。 これは、最後の挿入時に追加されたテキストのみをラップするようにVimに指示しています。


1


I find that if I select the line before doing the gq, it 正常に動作します。 gqをいくつかのテキスト選択操作と組み合わせて機能させたくないですか?

更新

私はそのバグを確認しました。 vim -u NONEを実行すると、私の「formatoptions」は「vt」になります。

たぶん、Bram Molenarまたは少なくともvimコミュニティが興味を持っているでしょうか?