VIMにgrepプラグインを使用すると、次のように、ファイルのセット内の文字列のすべての出現を現在のディレクトリで検索できます。
:grep Ryan *.txt
これは次のようなものを出力します:
file1.txt:3:Ryan was here
file2.txt:10:Ryan likes VIM
file3.txt:5:superuser.com is a fav of Ryan
(1 of 3): Ryan was here
Press ENTER or type command to continue
Enterキーを押すと、エディターに戻るだけです。私が本当にやりたいことは、それらのファイルの1つを開いて、文字列が見つかった場所にジャンプできるようにすることです。これを行う方法はありますか? 1 of 3
一部では、結果をタブで移動する方法があると思いますが、使用できるコマンドがわかりません。誰かがこれに光を当てることができますか?
Enterキーを押すと、file1.txtの3行目が表示されているはずです。次の一致にジャンプするには、:cn
;を実行します。前の一致にジャンプするには、:cp
を実行します。 :copen
を実行すると、一致のリストを含むウィンドウが開きます。カーソルを目的の一致に移動し、Enterキーを押してその一致にジャンプします。
:grep
の使用の詳細については、
:help grep
:help quickfix.txt
:cn
と:cp
を入力してクイックフィックスリスト内を前後に移動するのは面倒な場合があるため、以下のマッピングを使用します。
nmap <silent> <C-N> :cn<CR>zv
nmap <silent> <C-P> :cp<CR>zv
また、:grep
コマンドはプラグインではありません。 Vimの一部です。