説明のために、コマンドラインからこれを行う方法は次のとおりです。
vim `grep "hello" * -Rl`
これにより、「hello」が含まれるすべてのファイルでvimが開きます(-lはファイル名のみを示します)。同じことをしたいのですが、vimの中からです。概念的には、このようなもの(これは機能しません):
:args !grep "hello" * -Rl
私はこれを達成するために完全に異なるアプローチを受け入れています。1行にしたいのです(編集とやり直しが簡単です)。
答えは、単にバックティックを使用することですが、重要な条件があります!以下は引用符が付いている ため、私には機能しませんhello
。
:args `grep "hello" * -Rl`
しかし、それらを削除するか、引用符をエスケープすると機能します。
:args `grep hello * -Rl`
:args `grep \"hello\" * -Rl`
(これはカオスの答えの後のコメントに埋もれていました-他の誰かがこの問題を抱えている場合に備えて、それらをより見やすくするためにここに追加しました)