315

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

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

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

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

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

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

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

同様の機能を複製できるように、誰かが私を正しい方向に向けることができますか?

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

4

4 に答える 4

265

あなたが言及したものとは別に、私は差分をとるときに次のものだけを頻繁に使用します。

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

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

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

しかし、おそらく次の方法でより適切にサービスを提供できます。

  • zr-> 折りレベルを下げる。
  • zm→折り方をもう1段お願いします。

あるいは:

  • zR->折り畳みを完全に減らす、と私は言った!.
  • zM-> ほとんどを折ります。

あなたが求めたもう 1 つのこと、折りたたみの n 行を使用することは、Vim リファレンス マニュアルの optionsのセクションで、 diffのセクションを介して見つけることができます。

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

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

于 2011-03-13T21:41:22.693 に答える
5

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

でvim diffを開始した

 gvim -d main.sql backup.sql &

厄介なことに、1 つのファイルには MySQL キーワードが小文字で含まれており、もう 1 つのファイルでは大文字で、実質的に 1 行おきに違いが示されています。

:set diffopt+=icase

これにより、画面が動的に更新され、再び簡単にオフにすることができます。

于 2014-08-20T10:55:21.523 に答える
4

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

于 2013-01-17T22:44:20.340 に答える
0

Ctrl+ WW前述のように、ペインからペインへの移動に使用できます。

これで、特定の変更を単独で選択して、次のように他のペインに貼り付けることができます。ここでは、コードをペイン 1 からペイン 2 に変更したい場合の例を示しています。現在、カーソルはペイン 1 にあります。

  • Shift+を使用Vして行を強調表示し、上下キーを使用して必要なコードを選択し、以下の手順 3 から続行して変更を他のペインに貼り付けます。

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

    1. を押しVます。これにより、ビジュアルモードに移動します
    2. 上下キーを使用して、必要なコードを選択します
    3. プレスEsc
    4. yy変更をコピーまたはddカットするために使用します
    5. Ctrl+Wを実行して、 pane2Wに移動します
    6. を押しPて、必要な場所に変更を貼り付けます
于 2016-05-04T06:48:46.687 に答える