1. ホーム
  2. linux

[解決済み】Vimdiffでdiffセクションを展開/折りたたむにはどうすればいいですか?

2022-03-27 12:37:56

質問

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

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

  • d o - 他のウィンドウの変更を現在のウィンドウに取り込みます。

  • d p - カレントウィンドウの変更をもう一方のウィンドウに入れる。

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

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

  • Ctrl + W , w - もう一方の分割ウィンドウに切り替える( Ctrl + W , Ctrl + W は、万が一、手を放しても同じことができます。 Ctrl キーは少し後で)

同じような機能を再現するために、どなたか正しい方向を示していただけませんか?

例えば、差分の周りの線を拡大・縮小できたらいいなと思います。

解決方法は?

ご指摘のものを除けば、私がdiffingの際によく使うのは以下のものだけです。

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

依頼されたことのほとんどは折りたたみ式です。 Vimユーザーマニュアルのfoldingの章を参照してください。 . diff以外では、時々使います。

  • zo -> 開くと折り畳まれます。
  • zc ->折り目をつける。

でも、きっともっといいことがあるはずです。

  • zr ->折りたたみレベルの低減。
  • zm ->もう一段、折りたたみレベルを上げてください。

あるいは、さらに

  • zR ->折りたたみを完全に減らす、と言ったところでしょうか!
  • zM ->最も折る!

もうひとつ、ご質問のあった、折りたたみのn行を使うというのは、以下のところにあります。 Vimリファレンスマニュアルのオプションのセクション を経由して diffの項 :

  • set diffopt=<TAB> を更新または追加してください。 context:n .

また ユーザーマニュアルの diff の項 .