Vimdiff で diff セクションを展開/折りたたむにはどうすればいいですか? 質問する

Vimdiff で diff セクションを展開/折りたたむにはどうすればいいですか? 質問する

今日から vimdiff を使い始めましたが、Windows ベースの diff エディターでは当たり前のように行っていたいくつかの機能 (diff セクションの展開/折りたたみ、ファイルの完全展開/上下 3 行のコンテキスト行を含む diff のみの表示など) を実行したいと思いました。現在、私が知っているのは次のコマンドだけです。

キーボードショートカット:

  • do- 他のウィンドウからの変更を現在のウィンドウに取得します。

  • dp- 現在のウィンドウの変更を他のウィンドウに反映します。

  • ]c- 次の変更にジャンプします。

  • [c- 前の変更にジャンプします。

  • Ctrl+ W, w- 他の分割ウィンドウに切り替えます ( Ctrl+ W, Ctrl+ は、少し後でキーWを離した場合に同じことを行います)Ctrl

同様の機能を再現できるように、正しい方向を教えていただけますか?

たとえば、差分の周囲の行を展開/折りたたむことができれば便利です。

ベストアンサー1

あなたが言及したもの以外では、私は比較するときに次のものだけを頻繁に使用します。

  • :diffupdate :diffu-> diff を再計算します。これは、いくつかの変更を行った後、Vim が最小限の変更を表示しなくなった場合に便利です。ファイルが vimdiff 内で変更された場合にのみ機能することに注意してください。それ以外の場合は、次を使用します。
  • :evimdiff の外部でファイルが変更された場合は、ファイルを再読み込みします。
  • :set noscrollbind-> 両方のバッファでの同時スクロールを一時的に無効にし、:set scrollbindスクロールすることで再度有効にします。

あなたが求めているもののほとんどは折りたたみです:Vimユーザーマニュアルの折りたたみに関する章diff 以外では、次のものを時々使用します。

  • zo-> 折り目を開きます。
  • zc-> 折り目を閉じます。

しかし、おそらく次の方法のほうが良いでしょう:

  • zr-> 折り畳みレベルを下げる。
  • zm-> 折りたたみレベルをもう 1 つ増やしてください。

あるいは:

  • zR-> 折り畳みを完全に減らすと言いました。
  • zM-> ほとんどを折ります。

あなたが尋ねたもう一つのことは、n行の折り畳みを使うことです。Vimリファレンスマニュアルのオプションに関するセクション、経由diffのセクション:

  • set diffopt=<TAB>、更新または追加しますcontext:n

また、diff のユーザーマニュアルセクション

おすすめ記事