2013-10-27 10 views
5

私はvimに長い行を折り返してもらいたいが、途中で単語を分割しない。私はこの記事を見つけました:Word wrap in Gvimどのようにして空白でvimのブレークラインを作ることができますか?

しかし、それは私のためには機能しません。 formatoptionsにはすでにlがあり、改行が有効になっています。あなたが見ることができるように

:set formatoptions? 
formatoptions=lnq 

が、それはまだ分裂の言葉です:http://i.imgur.com/ekJIHww.png

関連するヘルプページを相談した後、私はまた、\sbreakatを設定しようとしたが、それはどちらか動作しませんでした。

答えて

8

これは、'linebreak'オプション('wrap'がオン)を使用して行われました。

Vimが画面に収まる最後の文字ではなく、'breakat'の文字で長い行を折り返す場合。

デフォルトでは、空白とタブと句読点文字が含まれているため、これは(単語の途中ではなく)予想通りに改行する必要があります。プラグインまたはマッピングによって変更されている場合は、'breakat'をVimのデフォルトにリセットすることをお勧めします。

ああ、設定しないでください'list'、これらの機能は混在しません。すべて一緒に今

:あなたはおよそハード改行話をしているかどうかそれが依存

:set nolist wrap linebreak breakat&vim 
+2

だから私は見えるタブの中から選択しなければならないし、ソフトラインラップのための言葉を壊さないでください?それは非常に珍しくてイライラします。 – Daniel

+1

ダニエル私に文句を言ってはいけません!これは実際には長い間、to-doリストに載っています( ':h todo')。誰かがそれを実装する時間がかかるまで、私はこの機能を持たないでしょう、私は恐れています。 – glts

1

- 改行文字が実際にテキストに挿入されている - または唯一の方法に影響を与えソフト改行を、テキストが画面に表示されます。
私はあなたが後者に言及していると思われます。
これが正しければ、:set listになります(おそらくset listをvimrcに追加してください)。
さらに、ワード境界でディスプレイ(実際のテキストではなくディスプレイのみ)をラップすると、listはvimにスペース、タブ、(ハード)改行などのさまざまな「不可視」文字を表示させます。 listchars変数(詳細は:help listcharsを参照)。単語の境界にソフトな線の折り返しを入れたいが、目に見えない文字は入れないようにするには、おそらくリストの文字を何も設定しないでください。
個人的に私は時々リストを有効にしたいと思うことがあります。 :set nolistターンがオフです。 :set list!はトグルします。 (そして、完全性のために、:set list?は、現在有効かどうかを示しています)。これらはすべて標準のvim規則です。
それがあまりにも多く入力するなら、あなたのvimrcにカスタムキーマッピングを設定することができます。しかしそれは別の質問です。

+0

私は実際にリストをすでに設定しています: 'set listchars = tab:> - 、trail:-'。 私が ':set nolist'を実行するたびに、行の折り返しが単語の途中になくなり、困惑します。前の答えは、2つは互換性がないと述べたが、私は理由を理解していない。 – Daniel

+0

ああ、私の悪い、ごめんなさい: 'list'が* en * abledならば、表示を折り返すために単語の境界は無視されます。私もそれを理解していない。 – Edward

関連する問題