【发布时间】:2013-10-11 00:29:07
【问题描述】:
我想为适合任何程序模式的改进定义自定义模式。我需要为所有这些模式定义键绑定。我选择使用define-minor-mode 和:keymap 以最小的努力声明键绑定。
我想将comment-or-uncomment-region 绑定到"C-;" kbd 宏给了我[67108923] 这个键序列的幻数。
我写的示例不起作用
(define-minor-mode
my-mode
nil nil
:keymap '(
( [67108923] . comment-or-uncomment-region )
)
)
我已注册模式,将其打开,但按下 С-; 会产生未定义键序列的通知
之后,我在暂存缓冲区中写入并评估了以预期方式执行的简单 global-set-key。
(global-set-key [67108923] 'comment-or-uncomment-region )
现在按下C-; 会产生预期的comment-or-oncomment-region 行为。
我尝试通过C-h f 搜索功能信息来调试问题。它会产生奇怪的输出,comment-or-oncomment-region 被 两次 绑定到 不同的 键序列:
It is bound to C - ;, C-;
第一个出现并随着次要模式切换而消失,另一个出现在 global-set-key 调用中。
如果我对两张地图使用了相同的键定义,怎么会这样?我遗漏了哪些细节?
【问题讨论】:
标签: emacs elisp minor-mode