12

Vim で検索レジスタをコマンドラインに貼り付ける方法はありますが、周囲の\<角かっこはあり\>ませんか? grepバッファ内で検索を行ってから、一致したパターンを(より具体的にはack.vimへの) 引数として使用したいと思うことがよくあります。

':を検索してfoo入力すると、次のようになります。:Ack '<C-r>/

:Ack '\<foo\>'

これでは何も見つかりません。私が代わりに欲しいのは:

:Ack 'foo'

もちろん、これは単純化した例です。これがより価値があるのは、より複雑な検索結果の場合です。

カーソルの下に単語/WORDを貼り付けることを認識しており<C-r><C-w><C-r><C-a>これらで十分なことがよくありますが、常にそうとは限りません。

4

2 に答える 2

12

<C-r>/は、入力した検索パターンを挿入します。入力した場合/foo、検索レジスタには が含まれますfoo

<C-r>/一致ではなく、検索パターンを挿入することに注意してください。 を検索するとfoo\d、ではなく<C-r>/が挿入されます。foo\dfoo9

ご存じのように、検索を単語全体に限定するためにまたはを使用した場合は、\<and\>が追加されます。単語全体を検索せにとを使用して、 .*#g*g#\<\>

おそらく役立つマッピングを次に示します。

nnoremap <F6> :Ack '<C-r>=expand("<cword>")<CR>'
于 2013-10-14T21:46:45.953 に答える