vim 的技巧
vim查找时如果有多个特殊字符需要转义容易出错还繁琐。
要确保要查找的 URL 仍保存在寄存器 u 中。然后,我们输入 / 或者 ? 调
出查找提示符,二者均能正确工作。最后,要依次输入原义开关 \V 与 <C-r>= 。在完
成以上操作后,Vim 就会从查找提示符的状态切换到表达寄存器提示符的状态了。现
在我们输入以下命令:
➾=escape(@u, getcmdtype().'\')
当我们按下 <CR> 后, escape() 函数将被执行,其返回值将会被插入到查找域。
设定查找快捷键
在上面的脚本中,不仅 * 命令的原有功能被覆盖了, # 命令也被重新定义为反向
查找选中的文本了。 xnoremap 关键字指明此映射项只在可视模式下有效
xnoremap * : <C-u>call <SID>VSetSearch() <CR>/<C-R>=@/<CR><CR>
xnoremap # : <C-u>call <SID>VSetSearch() <CR>?<C-R>=@/<CR><CR>
function! s:VSetSearch()
let temp = @s
norm! gv"sy
let @/ = '\V' . substitute(escape(@s, '/\'), '\n', '\\n', 'g')
let @s = temp
endfunction

浙公网安备 33010602011771号