代码之家  ›  专栏  ›  技术社区  ›  Morgan Cheng

如何使vimgrep进行单词匹配搜索?

  •  3
  • Morgan Cheng  · 技术社区  · 15 年前

    我在Vimrc文件中有下面的语句来映射f3,以便在当前光标下为word执行vimgrep。

    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>
    

    有什么问题吗?我如何才能实现精确的单词匹配?

    1 回复  |  直到 15 年前
        1
  •  4
  •   Dave Kirby    15 年前

    问题是您需要将反斜杠加倍-一个反斜杠将转义下一个字符,如果字符没有特殊含义,则反斜杠将被删除。例如

    echo "\<"
    

    将打印

    <
    

    这似乎行得通:

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