使用引用标记的范围操作编辑 Vim 宏
edit a Vim macro with a range operation that refers to a tag
我创建了一个具有范围 (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'
但对于这些示例,宏定义中的 ' 会导致编辑失败。如何解决这个问题?替代范围语法或定义时转义引号的方法。
我知道我可以重新录制宏,但实际版本比这长得多!
- 单引号需要在这样的字符串中加倍:
:let @b=':.,''bs/ .*$\n/ /ge^Mdd'
- 您可以使用双引号,但也可以使用双反斜杠(如果有的话)
:let @b=":.,'bs/ .*$\n/ /ge^Mdd"
- 您可以
:put b
进入暂存缓冲区,编辑,然后 "by$
再次进入寄存器,而不是 :let
。
我创建了一个具有范围 (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'
但对于这些示例,宏定义中的 ' 会导致编辑失败。如何解决这个问题?替代范围语法或定义时转义引号的方法。
我知道我可以重新录制宏,但实际版本比这长得多!
- 单引号需要在这样的字符串中加倍:
:let @b=':.,''bs/ .*$\n/ /ge^Mdd'
- 您可以使用双引号,但也可以使用双反斜杠(如果有的话)
:let @b=":.,'bs/ .*$\n/ /ge^Mdd"
- 您可以
:put b
进入暂存缓冲区,编辑,然后"by$
再次进入寄存器,而不是:let
。