正在用控制字符恢复 Vim 宏
Restoring Vim macro with control character
我在 Linux 上使用 GVim,并试图通过使用 :source
命令获取 vim 脚本来恢复宏。我注意到,如果保存的宏包含 return 键,则会隐式附加 ^J
,从而改变宏行为。即使我在命令行手动输入它们也会发生。例如:
let @c = "<CR>"
如果我显示寄存器内容,它显示 ^J
悄悄进入:
:reg c
--- 寄存器 ---
“c^M^J
如果我只用 return 键记录,就没有虚假添加。 ^J
悄悄进来的任何线索?
寄存器具有确定其字符/行模式的试探法。以 Enter 结尾的字符串会触发逐行检测,这会导致 Vim 附加 ^J
。您可以使用 setreg()
,它允许您通过可选的第三个参数指定寄存器模式:
:call setreg('c', "\<CR>", 'c')
:reg c
--- Registers ---
"c ^M
我在 Linux 上使用 GVim,并试图通过使用 :source
命令获取 vim 脚本来恢复宏。我注意到,如果保存的宏包含 return 键,则会隐式附加 ^J
,从而改变宏行为。即使我在命令行手动输入它们也会发生。例如:
let @c = "<CR>"
如果我显示寄存器内容,它显示 ^J
悄悄进入:
:reg c --- 寄存器 --- “c^M^J
如果我只用 return 键记录,就没有虚假添加。 ^J
悄悄进来的任何线索?
寄存器具有确定其字符/行模式的试探法。以 Enter 结尾的字符串会触发逐行检测,这会导致 Vim 附加 ^J
。您可以使用 setreg()
,它允许您通过可选的第三个参数指定寄存器模式:
:call setreg('c', "\<CR>", 'c')
:reg c
--- Registers ---
"c ^M