我正在编写一个 elisp 函数,它将给定键永久绑定到当前主要模式的键盘映射中的给定命令。例如,
(define-key python-mode-map [C-f1] 'python-describe-symbol)
命令和键序列从用户交互收集。但是,我无法生成与当前主要模式相对应的 KEYMAP 名称(例如“python-mode-map”)。
我试过这个函数(current-local-map),但是这个函数返回的是keymap对象本身,而不是它的名字。
我知道许多主要模式键映射是根据约定“主要模式名称”-模式映射“命名的,但是,情况并非总是如此(例如,python-shell-map),所以我宁愿我的代码不依赖这个约定。(我什至不确定如何访问当前主要模式的名称)。
将(define-key ...)
被添加到一个 init 文件中,所以虽然
(define-key (current-local-map) key command)
似乎工作,它不能作为初始化文件上的代码工作。