`grep -l .. | xargs vim`が警告を生成するのはなぜですか? [コピー]

`grep -l .. | xargs vim`が警告を生成するのはなぜですか? [コピー]

次のコマンドを実行すると、

grep -rl test . | xargs vim

「Vim:警告:入力が端末から来ていません」という警告が表示されますが、それでもファイルを編集できます。警告が表示されるのはなぜですか?

ベストアンサー1

Vimは内部で呼び出されるので管路stdinターミナルではなく古いパイプの出力に接続されます。対話型コマンドとして、Vimは端末から入力を受け取る必要があります。

viaのようなパイプは避けるのが最善です。

$ vim $(grep -rl test .)

またはVim内で:

:args `grep -rl test .`

おすすめ記事