使用引用标记的范围操作编辑Vim宏

时间:2016-11-17 20:50:39

标签: vim vim-macros

我创建了一个带有范围(http://vim.wikia.com/wiki/Ranges)操作的宏,如:

:.,'bs/ .*$\n/ /ge^M

然后我想编辑它,我通常会使用let(http://vim.wikia.com/wiki/Macros#Editing_a_macro):

:let @b=':.,'bs/ .*$\n/ /ge^Mdd'

但是对于这些例子,'在宏定义中导致编辑失败。怎么解决这个?替换范围语法或定义时转义引号的方法。

我知道我可以重新录制宏,但实际版本要长得多!

1 个答案:

答案 0 :(得分:3)

  • 单引号需要在此类字符串中加倍::let @b=':.,''bs/ .*$\n/ /ge^Mdd'
  • 您可以使用双引号,但也可以使用双反斜杠(如果有的话):let @b=":.,'bs/ .*$\\n/ /ge^Mdd"
  • 您可以:let代替:put b进入暂存缓冲区,然后再次"by$再次进入寄存器。