今日から vimdiff を使い始めましたが、Windows ベースの diff エディターでは当たり前のように行っていたいくつかの機能 (diff セクションの展開/折りたたみ、ファイルの完全展開/上下 3 行のコンテキスト行を含む diff のみの表示など) を実行したいと思いました。現在、私が知っているのは次のコマンドだけです。
キーボードショートカット:
do- 他のウィンドウからの変更を現在のウィンドウに取得します。
dp- 現在のウィンドウの変更を他のウィンドウに反映します。
]c- 次の変更にジャンプします。
[c- 前の変更にジャンプします。
Ctrl+ W, w- 他の分割ウィンドウに切り替えます ( Ctrl+ W, Ctrl+ は、少し後でキーWを離した場合に同じことを行います)Ctrl
同様の機能を再現できるように、正しい方向を教えていただけますか?
たとえば、差分の周囲の行を展開/折りたたむことができれば便利です。
ベストアンサー1
あなたが言及したもの以外では、私は比較するときに次のものだけを頻繁に使用します。
:diffupdate
:diffu
-> diff を再計算します。これは、いくつかの変更を行った後、Vim が最小限の変更を表示しなくなった場合に便利です。ファイルが vimdiff 内で変更された場合にのみ機能することに注意してください。それ以外の場合は、次を使用します。:e
vimdiff の外部でファイルが変更された場合は、ファイルを再読み込みします。:set noscrollbind
-> 両方のバッファでの同時スクロールを一時的に無効にし、:set scrollbind
スクロールすることで再度有効にします。
あなたが求めているもののほとんどは折りたたみです:Vimユーザーマニュアルの折りたたみに関する章diff 以外では、次のものを時々使用します。
zo
-> 折り目を開きます。zc
-> 折り目を閉じます。
しかし、おそらく次の方法のほうが良いでしょう:
zr
-> 折り畳みレベルを下げる。zm
-> 折りたたみレベルをもう 1 つ増やしてください。
あるいは:
zR
-> 折り畳みを完全に減らすと言いました。zM
-> ほとんどを折ります。
あなたが尋ねたもう一つのことは、n行の折り畳みを使うことです。Vimリファレンスマニュアルのオプションに関するセクション、経由diffのセクション:
set diffopt=<TAB>
、更新または追加しますcontext:n
。