VIMで2つのファイルを比較するときは、行を折り返すことをお勧めします。ただし、vimdiffはデフォルトでラップをオフに設定します。
すべての差分に対して自動的に行の折り返しを設定する方法はありますか?
私は以下を使用します:
autocmd FilterWritePre * if &diff | setlocal wrap< | endif
FilterWritePre
は、生成されたdiffがバッファーに書き込まれる直前にトリガーされ、setlocal wrap<
はwrap
のグローバル値をコピーします。もちろん、単にsetlocal wrap
を強制することも可能です。
あなたはあなたのvimrcに以下を入れることができます。
au VimEnter * if &diff | execute 'windo set wrap' | endif
Vimがすでに開始されている場合、diffとwrapを開始するコマンドは、分割されたウィンドウファイルのそれぞれにあります。
:diffthis
:set wrap
ただし、diff + wrapが正しく表示されません。
一方のファイルに長い行があり、もう一方のファイルに短い行または欠落している行がある場合、長い行は、たとえば、最初の側で2行を占め、短い行または欠落している行は、2番目の側で1行しか占めません。側。
これにより、2つのファイルの垂直シフトになります。確かに、色はこのシフトを視覚的に補正するのに役立ちます。ただし、数行の差分では、シフトがウィンドウの高さよりも大きくなり、差分が読み取れなくなる可能性があります。
質問は完全には解決されていません...アドバイスしてください。
あなたはこれを実行することができます
vimdiff -c 'set wrap' -c 'wincmd w' -c 'set wrap' file1 file2
特定の端末から起動したときにvimdiff
をラップするのみというデモでは、この質問を解決する必要がありました。
私はついに原油に頼りました:
alias vimdiff='vimdiff +"windo set wrap"'
vimdiff file.orig file
より多くのファイルがあり、vimrcでこれを永続的にしたくない場合
vimdiff -c 'windo set wrap' file1 file2 file3 [file4]
あるいは単に windo set wrap
vimが開いたら