25

最初にファイルにリダイレクトしてからそのファイルを開くのではなく、vim内でコマンドの出力を直接表示する方法があるかどうか疑問に思っていました。

例 $ gvim < のようなものが必要ですdiff -r dir1/ dir2/

これにより、あいまいなリダイレクト エラー メッセージが表示されます

dir1 と dir2 の差分を gvim 内で直接見たいだけです。

誰でも素敵なハックを提供できますか?

4

10 に答える 10

42
diff file1 file2 | vim -R -

-R読み取り専用にするので、誤って入力を変更することはありません (これは望ましい動作である場合とそうでない場合があります) 。単一のダッシュはvim、標準入力を介して入力を読み取るように指示します。他のコマンドでも機能します。

于 2008-10-23T17:57:24.213 に答える
10

また、既に Vim を使用している場合:

:r! diff file1 file2
于 2008-10-23T18:45:55.427 に答える
6

vim -d file1 file2

于 2008-10-23T18:12:55.837 に答える
6

私も提案しvimdiffたりvim -d、差分を見る場合のために、パイプでvimを使用するためのこの(より一般的な)アプローチを共有する必要があります:vipe(moreutilsUbuntuのパッケージから)。

例えば:

find -name '*.png' | バイプ | xargs rm

に渡す前に、見つかった .png ファイルのリストを (vim で) 最初に編集できますxargs rm

于 2008-10-23T19:30:19.050 に答える
4

jst 代わりに gvimdiff を使用する
か、vimdiff
を使用して、コマンドの出力を直接 vim に貼り付けます。たとえば、ls、試してください
:%r!ls

于 2008-10-23T17:53:57.013 に答える
4

ところで、DirDiff プラグインがあります。

于 2008-10-23T22:22:21.950 に答える
2

あなたはこれを行うことができます

diff -r dir1/ dir2/ | gvim -

vim(またはgvim)の' -'オプションは、vimにSTDINを開くように指示します

于 2009-06-02T20:09:33.950 に答える
1

よく使うvimdiff -g <file1> <file2>

于 2011-08-20T15:54:29.283 に答える
0

最も簡単で便利な方法の 1 つは、次のようにすることです。

vimdiff -R <file1> <file2>

繰り返しますが、'-R' フラグは、偶発的な変更を避けるために読み取り専用モードで開くことです。

于 2012-12-20T10:57:06.590 に答える
0

あなたが探しているのはプロセス置換と呼ばれます:

vim <(diff -r dir1/ dir2/)

しかし、Luc が言及した DirDiff プラグインは、ディレクトリを比較するのにはるかに便利です。

于 2014-09-02T21:15:37.353 に答える