我想为适合任何程序模式的改进定义自定义模式。我需要为所有这些模式定义键绑定。我选择使用define-minor-mode
with: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
调用中出现。
如果我对两张地图都使用了相同的键定义,那怎么可能呢?我错过了哪些细节?