2015-01-26 57 views
1

使用*當我只是搜索一個單詞時很好用,但我經常想搜索出現在代碼中的短語或文件名,並且很好地直觀地選擇字符串,並能夠擊中*#來搜索它。事實證明,這比我希望的更復雜。我從這開始:在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

回答

2

鏈接問題的最佳答案不會做任何轉義,儘管我要提供的解決方案也存在。我用非常類似於這樣:

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

+0

有幾個選項,請參見Vim的真棒搜索:[視覺明星](http://vimawesome.com/?q=visual%20star) – 2015-01-26 21:54:33