3

現在のカーソルの下の単語に対して vimgrep を実行するように F3 をマップする _vimrc ファイルに以下のステートメントがあります。

map <F3> :execute "noautocmd vimgrep /" . expand("<cword>") . "/gj **/*." .  expand("%:e") <Bar> cw<CR>

今、現在のカーソルの下の単語と完全に一致するようにvimgrepにしたいと思います。以下のように変更しましたが、うまくいきません。

map <leader>s :execute "noautocmd vimgrep /\<" . expand("<cword>") . "\>/gj **/*." .  expand("%:e") <Bar> cw<CR>

Anything is wrong? How can i achieve exact word match?

4

1 に答える 1

4

問題は、バックスラッシュを 2 つ重ねる必要があることです。単一のバックスラッシュは次の文字をエスケープし、文字に特別な意味がない場合はバックスラッシュが削除されます。例えば

echo "\<"

印刷します

<

これはうまくいくようです:

map <leader>s :execute "noautocmd vimgrep /\\<" . expand("<cword>") . "\\>/gj **/*." .  expand("%:e") <Bar> cw<CR>
于 2009-12-06T16:58:07.450 に答える