

























受影响的用户在数字小键盘上按那个键想输入小数点,结果得到的是逗号。用 C-h c 查看这个键的 Emacs 名称:
, 'COMMA' (translated from <kp-separator>) runs the command self-insert-command
关键在 <kp-separator> 这个名字。Emacs 在 simple.el 里把 kp-separator 硬编码映射为逗号:
(mapc (lambda (keypad-normal) (let ((keypad (nth 0 keypad-normal)) (normal (nth 1 keypad-normal))) (put keypad 'ascii-character normal) (define-key function-key-map (vector keypad) (vector normal)))) '((kp-space ?\s) (kp-tab ?\t) (kp-enter ?\r) (kp-separator ?,) (kp-equal ?=) ...))
这个映射和你的系统语言设置无关——不管你用的是中文、英文还是波兰文环境, kp-separator 一律变成逗号。修复方法是在配置中覆盖这个映射:
(keymap-set function-key-map "<kp-separator>" ".")
function-key-map 的机制是:按键先经过这个映射表转换,再交给后续的 keymap 处理。所以这一行配置的效果是,在所有模式中都把数字小键盘的分隔键变成小数点,而不是逗号。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。