web-dev-qa-db-ja.com

vimdiffに行を折り返すように強制しますか?

VIMで2つのファイルを比較するときは、行を折り返すことをお勧めします。ただし、vimdiffはデフォルトでラップをオフに設定します。

すべての差分に対して自動的に行の折り返しを設定する方法はありますか?

31
mgouin

私は以下を使用します:

autocmd FilterWritePre * if &diff | setlocal wrap< | endif

FilterWritePreは、生成されたdiffがバッファーに書き込まれる直前にトリガーされ、setlocal wrap<wrapのグローバル値をコピーします。もちろん、単にsetlocal wrapを強制することも可能です。

35
Nikita Kouevda

あなたはあなたのvimrcに以下を入れることができます。

au VimEnter * if &diff | execute 'windo set wrap' | endif
24
user2442259

Vimがすでに開始されている場合、diffとwrapを開始するコマンドは、分割されたウィンドウファイルのそれぞれにあります。

:diffthis
:set wrap

ただし、diff + wrapが正しく表示されません。

一方のファイルに長い行があり、もう一方のファイルに短い行または欠落している行がある場合、長い行は、たとえば、最初の側で2行を占め、短い行または欠落している行は、2番目の側で1行しか占めません。側。

これにより、2つのファイルの垂直シフトになります。確かに、色はこのシフトを視覚的に補正するのに役立ちます。ただし、数行の差分では、シフトがウィンドウの高さよりも大きくなり、差分が読み取れなくなる可能性があります。

質問は完全には解決されていません...アドバイスしてください。

14
Sylvain

あなたはこれを実行することができます

vimdiff -c 'set wrap' -c 'wincmd w' -c 'set wrap' file1 file2
4
nos

特定の端末から起動したときにvimdiffをラップするのみというデモでは、この質問を解決する必要がありました。

私はついに原油に頼りました:

alias vimdiff='vimdiff +"windo set wrap"'
vimdiff file.orig file
3
Sylvain Leroux

より多くのファイルがあり、vimrcでこれを永続的にしたくない場合

vimdiff -c 'windo set wrap' file1 file2 file3 [file4]

あるいは単に windo set wrapvimが開いたら

1
gtatr