加载包含替换的.vimrc时出错

时间:2014-05-02 08:40:26

标签: vim

如何在我的.vimrc中将替换映射到键而不会在我获取错误时出错?

我试图添加

nnoremap <leader>re :'<,'>s/<%=*\s//g | '<,'>s/\s-*%>//g

到我的.vimrc,但是当我这样做并重新加载文件时,我收到以下错误:

The error I see in Vim: Mark not set

1 个答案:

答案 0 :(得分:3)

问题在于您正在组合两个:s命令,但命令分隔符|结束:map命令,以便第二次替换立即执行,导致错误。您需要转义|,或者更好地在映射中使用特殊的<Bar>表示法:

nnoremap <leader>re :'<,'>s/<%=*\s//g <Bar> '<,'>s/\s-*%>//g

PS:在视觉模式下定义映射是否更自然(因为它适用于最后的选择)?使用:vmap,将自动插入第一个'<,'>范围:

xnoremap <leader>re :s/<%=*\s//g <Bar> '<,'>s/\s-*%>//g