2

我创建了一个具有范围(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'

但是对于这些示例,宏定义中的 ' 会导致编辑失败。如何解决这个问题?定义时可以使用替代范围语法或转义引号的方法。

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

4

1 回答 1

3
  • 单引号需要在这样的字符串内加倍::let @b=':.,''bs/ .*$\n/ /ge^Mdd'
  • 您可以使用双引号,但也可以使用双反斜杠(如果有的话):let @b=":.,'bs/ .*$\\n/ /ge^Mdd"
  • 而不是:let,您可以:put b进入暂存缓冲区,编辑,然后"by$再次进入寄存器。
于 2016-11-18T13:17:17.797 回答