在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

这可能会回答你的问题:http://stackoverflow.com/a/363125/3368845 – EvergreenTree 2015-01-26 20:42:54

链接问题的最佳答案不会做任何转义,尽管我要提供的解决方案也存在。我用非常类似于这样:

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

+0

有几个选项,请参见Vim的真棒搜索:[视觉明星](http://vimawesome.com/?q=visual%20star) – 2015-01-26 21:54:33