最初にファイルにリダイレクトしてからそのファイルを開くのではなく、vim内でコマンドの出力を直接表示する方法があるかどうか疑問に思っていました。
例 $ gvim < のようなものが必要ですdiff -r dir1/ dir2/
これにより、あいまいなリダイレクト エラー メッセージが表示されます
dir1 と dir2 の差分を gvim 内で直接見たいだけです。
誰でも素敵なハックを提供できますか?
diff file1 file2 | vim -R -
-R
読み取り専用にするので、誤って入力を変更することはありません (これは望ましい動作である場合とそうでない場合があります) 。単一のダッシュはvim
、標準入力を介して入力を読み取るように指示します。他のコマンドでも機能します。
また、既に Vim を使用している場合:
:r! diff file1 file2
vim -d file1 file2
私も提案しvimdiff
たりvim -d
、差分を見る場合のために、パイプでvimを使用するためのこの(より一般的な)アプローチを共有する必要があります:vipe(moreutils
Ubuntuのパッケージから)。
例えば:
find -name '*.png' | バイプ | xargs rm
に渡す前に、見つかった .png ファイルのリストを (vim で) 最初に編集できますxargs rm
。
jst 代わりに gvimdiff を使用する
か、vimdiff
を使用して、コマンドの出力を直接 vim に貼り付けます。たとえば、ls、試してください
:%r!ls
ところで、DirDiff プラグインがあります。
あなたはこれを行うことができます
diff -r dir1/ dir2/ | gvim -
vim(またはgvim)の' -
'オプションは、vimにSTDINを開くように指示します
よく使うvimdiff -g <file1> <file2>
最も簡単で便利な方法の 1 つは、次のようにすることです。
vimdiff -R <file1> <file2>
繰り返しますが、'-R' フラグは、偶発的な変更を避けるために読み取り専用モードで開くことです。
あなたが探しているのはプロセス置換と呼ばれます:
vim <(diff -r dir1/ dir2/)
しかし、Luc が言及した DirDiff プラグインは、ディレクトリを比較するのにはるかに便利です。