VIM検索の優れた機能、つまりすべての検索結果と対応する行番号を一覧表示する機能を見つけました。
例えば:
:g/for.*bar/#
質問:これを別のウィンドウ/タブ/バッファにパイプ/配置する「簡単な」方法はありますか?
乾杯!
:g/for.*bar/#
の出力を新しいバッファにパイプする方法はわかりませんがvimgrep
、ほぼ同じ結果を得るために使用する方法は知っています。
試す:
vimgrep "for.*bar" %
:copen
これで、すべての検索結果を含むバッファーが作成され、とを使用して検索結果間を移動することもでき:cn
ます:cp
。
を見てみましょう:help quickfix
出力を直接バッファにリダイレクトする方法はわかりませんが、それを使用redir
してレジスタに送信し、そのレジスタを新しいバッファに貼り付けることができます。
:redir @a
:g/for.*bar/#
:redir END
:enew
:put! a
(#
後:g
)は、各結果の行番号を前に付けます。
ファイルに送信することもできます。
:redir > file
:g/for.*bar/#
:redir END
:e file
詳細については、を参照:help :redir
してください。
受け入れられた答えを補完する:\ ss(検索を表示)を使用してクイックフィックスウィンドウで最後の検索を直接開くためのマッピングを行い、それを.vimrcに追加します:
" show last search results on the quickfix window at windows bottom
nnoremap <silent><leader>ss :vimgrep /<C-r>\// % <CR> :botright copen <CR>
BR