2015-02-09 51 views
1

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

let @c = "<CR>" 

如果我显示寄存器的内容,它显示了^J蹑手蹑脚:

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

如果我只有一个返回键进行录制,没有虚假增加。任何线索为什么^J正在爬行?

回答

3

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

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