在我的.vimrc中,我有以下别名:
map <C-F> <Esc>/<C-R><C-W><CR>N
map <S-F> <Esc>/\<<C-R><C-W>\><CR>N
这些允许我快速搜索字符串作为完整单词的一部分。执行此操作后,我经常将@ /(C-R,/)的内容(即使用这些别名的上次搜索)粘贴到另一个vim命令(vimgrep,s // g等)中。
如果我使用C-F这很好用,因为@ /包含我搜索的字符串(例如:“foo”)。但是当我使用S-F时,@ /包括“\&lt;”和“\&gt;” (例如:“\&lt; foo \&gt;”),我几乎总是手动删除。
有没有办法让“\&lt;”和“\&gt;”从@ / register自动删除?
答案 0 :(得分:2)
您可以覆盖命令行<C-r>/
命令,或添加变体<C-r>?
,如下所示:
:cnoremap <C-r>? <C-r>=substitute(@/, '\\[<>]', '' ,'g')<CR>