VIM: 2つの異なるファイル内の特定の行を比較する方法

VIM: 2つの異なるファイル内の特定の行を比較する方法

ファイルA の 2 行目から 4 行目とファイルB の 8 行目から 10 行目を比較するにはどうすればよいでしょうか?

また、行番号を書き留める代わりに、各ファイル内の行を視覚的に選択することは可能ですか?

ありがとう!

答え1

あなたが望む解決策は現在 Vim には存在しませんが、一部の開発者が議論しています。私が使用した解決策は 2 つあります。

1 つは、ファイル A の 1 行目とファイル B の 1 行目から 7 行目を削除し、残りの行を比較することです (例: :windo diffthis)。

もう一つは、次のようなプラグインを使うことです。番号関心のある行を新しいバッファにコピーし、それらのバッファを比較します。NrrwRgn プラグインの優れた機能の 1 つは、新しいバッファに変更を加え、終了すると、変更が元のバッファにコピーされることです。

行の範囲を指定できるVimの操作では、その範囲はいくつかの方法で指定できます。1つは行番号を使用する方法です。もう1つは、行ごとに視覚的に領域を選択する方法です。

:help [range]
:help V

NrrwRgnプラグインを使用して例題を解決するには、カーソルをファイルAの2行目に置いて次のように入力します。

Vjj\nr

2行目から4行目までを視覚的に選択し(Vjj)、新しいバッファにコピーします(\nr)。次に、カーソルをファイルBの8行目に置き、同じシーケンスを繰り返します。2つの新しいバッファのそれぞれで、

:diffthis

エレガントではありませんが、機能します。

関連情報