使用控制字符恢复Vim宏

时间:2015-02-09 12:09:23

标签: vim

我在Linux上使用GVim,并尝试使用:source命令通过获取vim脚本来恢复宏。我注意到如果保存的宏包含返回键,则隐式附加^J,从而改变宏行为。即使我在命令行手动输入它也会发生。例如:

let @c = "<CR>"

如果我显示寄存器内容,它会显示^J crept in:

:reg c
--- Registers ---
"c    ^M^J

如果我只使用返回键进行录制,则不会添加任何虚假内容。 ^J悄悄进入的任何线索?

1 个答案:

答案 0 :(得分:3)

寄存器具有确定其字符/线性模式的启发式方法。以Enter结尾的字符串会触发行检测,这会导致Vim追加^J。您可以使用setreg(),它允许您通过可选的第三个参数指定寄存器模式:

:call setreg('c', "\<CR>", 'c')
:reg c
--- Registers ---
"c   ^M