回答:
利点の1つ:[vim]grep
以上は、/?
(あなたが使用している場合やロケーションリスト結果はQuickFixリストに入れてしまうことがあり:l[vim]grep
、)あなたが使用してすべてのマッチのリストをプルアップすることができますことは、この意味:cl
。次に、番号を使用して、リストから目的の結果に直接移動できます。
また:[vim]grep pattern %
、コードベース全体を検索するのと同じコマンドを使用して、現在のバッファを検索できるため、:[vim]grep pattern path
対称性が向上します。
さらに、Silver Surfer / Ripgrepを使用して、非常に強力な検索を行うことができます。これらは:[vim]grep
コマンドにマッピングできます。
私が見る3つの主な利点があります
一貫したregex
エンジン/構文を使用:を使用:grep/vimgrep
するとgrepprg
、grep/ack/ag
などを定義できるを定義できます。これを使用すると、一貫したregex
エンジンを使用して現在のバッファーまたは複数のバッファー/ファイルを検索できます。一方、vimの/pattern
オプションを使用すると、vimのデフォルトの正規表現エンジンに固執しextended regular expression
ます。これは、構文と比較して構文が異なります。だから、あなたが表現を検索する必要がいつでも、あなたは/あなたが使用する必要があるかどうか覚えて考える必要があるだろう\)
か、単に)
と他の違い。これは非常に迷惑です(/programming/3864467/whats-the-difference-between-vim-regex-and-normal-regex)
vimgrepは、quickfix / locationリストを作成し:grep/vimgrep
ます:を使用すると、検索リストを作成できます。(https://medium.com/@lakshmankumar12/quickfix-and-location-list-in-vim-ca0292ac894d)。
ロケーションリストを使用する場合、]q
Tim-Popesの無害なプラグイン(https://github.com/tpope/vim-unimpaired)がある場合、ショートカットを使用してナビゲートできます。
vim内での複雑な検索:通常、複雑な検索を行う必要がある場合は、コマンドラインを使用する必要があります。ただし、greprg
適切に定義し、[1]などのコマンドを使用する場合
:vim / pattern1 / find . -type f
非常に複雑な検索を実行し、location list
またはで検索結果を表示できますquickfix list
。
[1] http://vimcasts.org/episodes/search-multiple-files-with-vimgrep/