我想创建一个领导者快捷方式,用于在当前缓冲区中进行多个全局搜索和替换。
例如,按下 leader 然后按“fq”,我希望它在全球范围内搜索和替换 3 次,替换:
- “a” 和 “b”
- “c” 替换为 “d”
- “e” 替换为 “f”
我已经阅读了它的帮助并且认为我已经接近了,但是这不起作用(似乎只进行第一次搜索):
map <leader>fq :%s/a/b/ge | %s/c/d/ge | %s/e/f/ge<CR>
答案1
命令分隔符|
的优先级高于:map
参数,因此您可以有效地执行此操作:
:map <leader>fq :%s/a/b/ge
:%s/c/d/ge | %s/e/f/ge<CR>
你需要逃脱字符,或者在定义映射时|
最好使用特殊的键符号:<Bar>
:map <leader>fq :%s/a/b/ge <Bar> %s/c/d/ge <Bar> %s/e/f/ge<CR>
附言:你应该使用:noremap
;它使映射不受重新映射和递归的影响。