VIM-如何使用 leader 搜索和替换多个字符串?

VIM-如何使用 leader 搜索和替换多个字符串?

我想创建一个领导者快捷方式,用于在当前缓冲区中进行多个全局搜索和替换。

例如,按下 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;它使映射不受重新映射和递归的影响。

相关内容