我正在尝试根据自己的需要自定义emacs。特别是我想定义一个长键盘宏并保存以供以后使用。但是emacs似乎在保存期间截断了定义。
环境:Fedora 23上的Emacs 24.5-7
我的尝试表明,emacs使用两种不同的格式进行保存,具体取决于键盘输入。对于没有控制字符的纯文本形式,它只存储一个字符串;到目前为止没有发生截断。但是,当控制字符(甚至换行符)是输入的一部分时,emacs存储一个字符符号的向量?()只有前12个元素,其余的只用省略号(...)表示,以后不能使用。
我使用C-x C-(和C-x C-)来定义宏,C-x C-k n给它一个名字,然后用M-x insert-kbd-macro保存它:
13个可打印字符: ABCDEFGHIJKLM
(fset' str13 (lambda(& optional arg)" Keyboard macro。"(interactive" p")(kmacro-exec-ring-item(引用(" abcdefghijklm&# 34; 0"%d"))arg)))
带换行符的11个可打印字符: ABCDEFGHIJK
(fset' str11nl (lambda(& optional arg)" Keyboard macro。"(interactive" p")(kmacro-exec-ring-item(quote( [97 98 99 100 101] 102 103 104 105 106 107返回] 0"%d"))arg)))
带换行符的12个可打印字符: ABCDEFGHIJKL
(fset' str12nl (lambda(& optional arg)" Keyboard macro。"(interactive" p")(kmacro-exec-ring-item(quote( 97 98 99 100 101 102 103 104 105 106 107 108 ...] 0"%d"))arg)))
当我再次加载此宏时,例如使用M-x eval-region和M-x str12nl,只插入12个可打印字符,然后发生错误:
在0 kbd宏迭代之后:键盘宏被一个响铃的命令终止
是否有方法可以保存完整定义? ,