有一个宏,其中视觉选择的文本将成为降价链接,一旦宏执行,它就会使 Vim 处于 INSERT 模式:
| - VISUAL selection
i - cursor position in INSERT mode
@l - invoke macro in "l" register
Some |text| saying stuff. = @l => Some [text]() saying stuff.
i
寄存器l
包含以下内容:
:registers l
Type Name Content
c "l S]%a()^Ohq<80>kb
通过以下方式创建它:
- 直观地选择一些文本
q
然后l
S
然后]
(S
是一个视觉选择命令vim-surround
)^ - normal mode cursor position |text| =S]=> [text] ^
%
(跳转到右括号)a
然后输入()
- CTRL-O
h
- CTRL-O然后
q
(完成宏但保持在 INSERT 模式)
所以我用鼠标选择了这个定义(即*
注册),并let @l = "S]%a()^Ohq<80>kb"
在另一个 Vim 实例中做了,导致
Some |text| saying stuff. = @l => Some [text]()^Ohq<80>kb saying stuff.
i
如果 Vim 是用剪贴板支持构建的(:let @+ = @l
在一个 Vim 实例中,:let @l = @+
在另一个实例中),它就可以工作,但我想学习破译这些表示的基础知识。
更新:录制和剪贴板复制的宏的 Vim 表示与手动粘贴的宏之间存在细微差别:序列^O
和<80>
在前一种情况下突出显示为特殊,但字符串在后一种情况下以统一颜色显示.
l
是原始录制的宏,由+
创建:let @+ = @l
,c
内容已逐字输入:
找到了其他几个具有类似前提的 Stackoverflow 线程,但它们没有帮助:
VIM 宏编辑
试图将其转换为^O
,<C-O>
但它没有用,并且不知道是什么<80>kb
。
根据上面的创建步骤,我本来希望得到类似的东西,S]%a()^Oh^Oq
而不是S]%a()^Ohq<80>kb
无论如何。
复制/粘贴 Vim 宏的可靠解决方案
没有回复,根据我的理解,它不适用于我的情况。
保存 vim 宏
仔细阅读答案和评论,但没有快乐。