2012-02-03 7 views
23

vimに長い行のテキスト(ラテックスの段落など)を書くとき、テキストは複数行に折り返されます。しかし、私が 'j'と 'k'(または上/下の矢印)でこれらの行を移動しようとすると、段落全体をスキップします。段落を強調表示してgqを押すと、この問題が解決されました。これにより、各行の最後に改行が挿入されます。Vim auto line-break

私の質問は、これを自動化する方法があるので、テキストを強調表示し続けて、gqを押す必要はありませんか?

+0

自動折り返しを挿入するには折り返しをお願いしていますか? – JaredPar

答えて

26

少し前に戻って、ラップされた行の内側と下になるgjgkを使用する必要があります。

非包まれたラインでgjgk仕事と全く同じjなどとkので、あなたが安全にすべてがシームレスになってgkgjkまたは<up>からjまたは<down>をマッピングすることができます。

- EDIT -

はい、それはエディの当面の問題をアドレスしませんが、それは順番に、で彼を入れて、貧しい人々の回避策に彼を導いた彼の元の問題(ラップラインで上下運動を)解決この状況。

+0

ありがとう、これは私のラテックス文書にsvnバージョンコントロールを使用しているので、これは良いことです。したがって、改行は改行や改行のために変更された行を表示しません。 – Eddy

37

textwidthオプション (:help twを参照)を使用して、行の幅を制限することができます。

たとえばあなたは80列に幅を制限する場合は、あなたが使用することができます。

:set tw=80 

このオプションでは、あなたが80列より長いものを入力しますときは、Vim は自動的に改行を挿入しますキャラクター。

+18

しかし、問題があります。既存の行に新しい単語を追加する場合は、段落を選択し、 'gq'を押して再整列する必要があります。これを自動化するには、 ':set fo + = a'と入力します。これについては ':help fo'と':help fo-table'を読んでください。しかし残念ながら、( ':set fo + = a'の後の)このモードはあまりうまくいかず、いくつかの問題もあります。 –

+0

また、空白のない行を改行しません。ちょうどそれが言及する価値があると思った。 – cprn