Vim - 粘贴时如何排除部分剪贴板寄存器

时间:2014-07-31 19:23:12

标签: vim

在我的.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自动删除?

1 个答案:

答案 0 :(得分:2)

您可以覆盖命令行<C-r>/命令,或添加变体<C-r>?,如下所示:

:cnoremap <C-r>? <C-r>=substitute(@/, '\\[<>]', '' ,'g')<CR>