在vim中搜索视觉选择

时间:2015-01-26 20:13:31

标签: vim

当我只是在搜索一个单词时,使用*很有效,但我经常想搜索出现在代码中的短语或文件名,只要目视选择字符串就可以了。能够点击*#进行搜索。事实证明这比我希望的更复杂。我从这开始:

vnoremap * y/\<<c-r>"<cr>\>

但如果我的字符串中有正斜杠,则会中断。我尝试使用\/组合自动替换正斜杠,如下所示:

vnoremap * yo<esc>pV:s-/-\\/-ge<cr>0D"_dd/\<<c-r>"<cr>\>
" y                - yank the text
" o<esc>           - open a new line
" p                - paste the string
" V:s-/-\\/-ge<cr> - replace / with \/
" 0D"_dd           - Grab the string and get rid of the line I just created
" /\<<c-r>"<cr>\>  - Do the search

这有(至少)两个问题:如果我无法编辑当前文件,它将无法工作,如果我试图在评论中抓取文本,它会爆炸。当我在注释行上使用o时,新行以注释开头,这意味着当我运行0D时,它不会获取正确的文本。有没有办法让这项工作按我想要的方式进行?

1 个答案:

答案 0 :(得分:2)

链接问题中的最佳答案没有进行任何转义,尽管我即将提供的解决方案也存在。我使用的东西非常相似:

https://github.com/nelstrom/vim-visual-star-search