2012-11-09 7 views
8

VIM検索の優れた機能、つまりすべての検索結果と対応する行番号がリストされています。例えばパイプの検索結果をVIMの他のタブ/ウィンドウ/バッファに返す

:g/for.*bar/# 

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

乾杯!

+0

「このリストと数字を新しいバッファに入れる」という意味ですか? – romainl

+0

@romaini:確かに。例えば、分割ウインドウにコピーするもの、スクロールするもの。今すぐリストを取得しますが、移動すると「消えます」。 – ezdazuzena

答えて

7

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

試してみてください。

vimgrep "for.*bar" % 
:copen 

は今、あなたはすべての検索結果とバッファを持っていても:cn:cpでそれらの間を移動することができます。

は受け入れ答えを褒める:help quickfix

+0

これは私が探しているもののように見えます。あなたはとても親切で、「%」が何をしているのか説明できますか?正確に「コペン」を意味するものは、vimgrepの結果はどこに行きますか? – ezdazuzena

+1

@ezdazuzena確かに '%'はコマンドモードで現在のファイルへのパスに置き換えられます。 – Benj

+0

ありがとうございます。私の質問の2番目の部分に関して、私はここで答えを見つけました:http://blogs.gurulabs.com/stuart/archives/2006/08/vimgrep-copen.html – ezdazuzena

2

私は、バッファへの直接出力をリダイレクトする方法を知りませんが、あなたは、ファイルにそれを送信するためにredirを使用することができます。

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

やレジスタへ:

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

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

+0

...そして、レジスタは ':put! aを新しいバッファに入れます。 –

1

を見てみましょう:私は、\のSS(ショー検索)でのQuickFixウィンドウの上に直接、最後の検索を開き、あなたの.vimrcに追加したマッピングをした:

" show last search results on the quickfix window at windows bottom 
nnoremap <silent><leader>ss :vimgrep /<C-r>\// % <CR> :botright copen <CR> 

BR

関連する問題