web-dev-qa-db-ja.com

Vimdiffのさまざまなセクションを拡大/縮小するにはどうすればいいですか?

私は今日vimdiffを使い始めて、Windowsベースのdiffエディタで当然のことと思っていたことのいくつかをしたいと思いました(diffセクションの展開/折りたたみ、完全なファイル展開/上の3コンテキスト行の差分のみ、または以下など)。私は現在以下のコマンドしか知りません。

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

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

  • dp - 現在のウィンドウから別のウィンドウに変更を加えます。

  • ]c - 次の変更に飛びます。

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

  • CTRL+W、 w - 別の分割ウィンドウに切り替えます(CTRL+W、 CTRL+W あなたが手放す場合に備えて、同じことをします CTRL 少し後でキーを押します)

私が似たような機能を再現できるように、誰かが私を正しい方向に向けることができますか?

たとえば、diffの周囲の線を拡大/縮小することができればいいでしょう。

289
TCSGrad

あなたが言及したものは別として、私は以下を論じるときにだけ頻繁に使用します:

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

あなたが求めたもののほとんどは折りたたみです。 vimユーザーマニュアルの折りたたみに関する章 。 diffの外で私はいつか使っています:

  • zo - >折りたたみを開きます。
  • zc - >折り畳みを閉じます。

しかし、あなたはおそらくより良いサービスを受けるでしょう:

  • zr - >折りたたみレベルを下げます。
  • zm - >もう1つの折りたたみレベル、.

あるいは:

  • zR - >折りたたみを完全に減らす、と私は言った。
  • zM - > fold Most !.

あなたが要求した他のことは、n行の折りたたみを使うこと、 オプションに関するvimのリファレンスマニュアルのセクションdiffのセクション で見つけることができます。

  • set diffopt=<TAB>を更新してからcontext:nを追加します。

diffのユーザマニュアルセクション も見てください。

227
ninjalj

大文字と小文字を区別しないようにvimdiffを設定する

でvim diffを始めたこと

 gvim -d main.sql backup.sql &

うっとうしいことに、1つのファイルにはMySQLキーワードが小文字で、もう1つの大文字は実質的に1行おきに違いを示しています。

:set diffopt+=icase

これにより動的に画面が更新されます

4
zzapper

実際にCtrl+W Wを実行する場合は、その余分なCtrlを追加する必要はありません。同じことをします。

3
tubbo

前述のctrl + w、wは、ペインからペインへの移動に使用できます。

これで、特定の変更だけを選択して次のように別のペインに貼り付けることができます。たとえば、私が自分のコードをペイン1からペイン2に変更したいが現在カーソルがpane1にあるようにします。

  • Shift-vを使用して行を強調表示し、上下のキーを使用して必要なコードを選択し、下の手順3から続けて変更内容をもう一方のウィンドウ枠に貼り付けます。

  • ビジュアルモードを使用してから変更する

    1 'v'をクリックしてビジュアルモードに移動します2上または下のキーを使用して必要なコードを選択します3 Escキーを押してエスケープキー4コピーするには 'yy'を使用します。 ctrl + w、w 'でpane2に移動します。6' p 'をクリックして必要な場所に変更を貼り付けます。

0
Pratheusha KK