2

使用法语键盘,如果不按住 shift 就无法访问常规数字,我想使用小键盘能够发送前缀/数字参数以及 emacs 命令。例如M-4 C-b, M-6 C-k, 等等....

在本机上,如果我尝试这样做,我会按下键盘<M-kp-2> is undefined

如何使用 emacs 配置或系统设置(使用 LinuxMint15)使其工作?

(我已经通过emacs docs,但我没有找到任何线索)

4

2 回答 2

3

这是个好问题。诸如之类的键<kp-2>都正确绑定universal-argument-mapdigit-argument. 并且<kp-subtract>绑定到universal-argument-minus,等等。但是 Meta 修饰符没有被教导去处理它们universal-argument-map

认为这是要走的路,但我不确定这是最好的方法:

 (define-key local-function-key-map [M-kp-2] [?\C-2])

这行得通,而且它似乎与local-function-key-map.

顺便说一句,这样做还不够

 (define-key universal-argument-map (kbd "<M-kp-2>") 'digit-argument)

期待其他答案。(FWIW,一种解决方法是只使用ESC <kp-3>而不是<M-kp-3>等)

于 2013-09-19T15:25:27.470 回答
1

将以下代码添加到您的 init 文件中(从 Nicolas Richard 消息中获取的解决方案https://lists.gnu.org/archive/html/bug-gnu-emacs/2013-05/msg00365.html):

(dotimes (i 10)                         ; for all keys
  (dolist (prefix (list "M" "C"))       ; for both modifiers
    (global-set-key
     (read (format "[%s-kp-%s]" prefix i))
     'digit-argument)
    (put 
     (read (format "%s-kp-%s" prefix i))
     'ascii-character
     (+ ?0 i))))

这将映射到C-<kp-num>和映射M-<kp-num>到具有标准数字键的相应键绑定。

于 2014-09-07T12:01:30.773 回答