在vim中搜索视觉选择
问题描述:
使用*
当我只是搜索一个单词时很好用,但我经常想搜索出现在代码中的短语或文件名,并且很好地直观地选择字符串,并能够击中*
或#
来搜索它。事实证明,这比我希望的更复杂。我从这开始:在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
时,它不会挖出正确的文本。有没有办法让我的工作方式符合我的要求?
答
链接问题的最佳答案不会做任何转义,尽管我要提供的解决方案也存在。我用非常类似于这样:
+0
有几个选项,请参见Vim的真棒搜索:[视觉明星](http://vimawesome.com/?q=visual%20star) – 2015-01-26 21:54:33
这可能会回答你的问题:http://stackoverflow.com/a/363125/3368845 – EvergreenTree 2015-01-26 20:42:54