grep "keyword" -n
を実行すると、次の結果リストが表示されます。
a/b/c:10: keyword
a/b/c:70: keyword
a/b/d:50: keyword
見つかった行のファイル(リストの2番目のファイルなど)を開くにはどうすればよいですか?
マウスを使用して出力をコピーし、vim
の後にコピーしてから、コピーした行番号に+
を追加します。 (つまり、マウスコピーを使用してvim a/b/c +70
を記述し、ファイル名を取得し、別のマウスコピーを使用して行番号を取得することを意味します。
キーボードショートカットでそれを行う方法はありますか?
2つのこと:
Vimはgrep
をサポートしています。
Vimを開いて :grep keyword ...
を実行すると、Vimは quickfix list に結果を入力し、最初のファイルにジャンプします。その後、 :cc n
(およびその他のコマンド)を使用して、n番目のクイックフィックスエントリにジャンプできます。
Grepの出力を使用して、前述のクイックフィックスリストを作成できます。
vim -q <(grep -n keyword ...)
次に、上記のクイックフィックスナビゲーションコマンドを使用します。
どちらも、手動でgrepの出力をいじるよりも簡単です。
(2)の代わりに、grepの出力をファイルに保存し、代わりにVimを開く必要がないと思われる場合は、代わりにそのファイルを使用できます。
grep ... | tee log
vim -q log
@muruが答えたように、grepのサポートが既にない場合は、そうすることができます:
:cexpr system("grep -n keyword")
別のコマンド、git grep
などで使用できます。
また、バッファで出力を開き、「cbuffer」を使用できます。
それについてのマニュアルの quickfix セクションを参照してください。