8

VIM検索の優れた機能、つまりすべての検索結果と対応する行番号を一覧表示する機能を見つけました。

例えば:

:g/for.*bar/#

質問:これを別のウィンドウ/タブ/バッファにパイプ/配置する「簡単な」方法はありますか?

乾杯!

4

3 に答える 3

9

:g/for.*bar/#の出力を新しいバッファにパイプする方法はわかりませんがvimgrep、ほぼ同じ結果を得るために使用する方法は知っています。

試す:

vimgrep "for.*bar" %
:copen

これで、すべての検索結果を含むバッファーが作成され、とを使用して検索結果間を移動することもでき:cnます:cp

を見てみましょう:help quickfix

于 2012-11-09T11:26:23.530 に答える
3

出力を直接バッファにリダイレクトする方法はわかりませんが、それを使用redirしてレジスタに送信し、そのレジスタを新しいバッファに貼り付けることができます。

:redir @a
:g/for.*bar/#
:redir END
:enew
:put! a

#:g)は、各結果の行番号を前に付けます。

ファイルに送信することもできます。

:redir > file
:g/for.*bar/#
:redir END
:e file

詳細については、を参照:help :redirしてください。

于 2012-11-09T11:24:52.993 に答える
1

受け入れられた答えを補完する:\ 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

于 2015-02-26T21:29:55.520 に答える