【问题标题】:Emacs: Prefix Command Arguments with numeric KeypadEmacs:带数字键盘的命令参数前缀
【发布时间】:2013-09-19 09:31:46
【问题描述】:

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

本来,如果我尝试按键盘进行操作,我会得到<M-kp-2> is undefined

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

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

【问题讨论】:

    标签: emacs keyboard-shortcuts


    【解决方案1】:

    这是个好问题。 <kp-2> 等键在universal-argument-mapdigit-argument 中都正确绑定。并且<kp-subtract> 绑定到universal-argument-minus 等。但是元修饰符并没有被教给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 &lt;kp-3&gt; 而不是&lt;M-kp-3&gt; 等)

    【讨论】:

      【解决方案2】:

      将以下代码添加到您的 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-&lt;kp-num&gt;M-&lt;kp-num&gt; 映射到具有标准数字键的相应键绑定。

      【讨论】:

        猜你喜欢
        • 2020-11-08
        • 1970-01-01
        • 2013-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-16
        • 2013-12-10
        相关资源
        最近更新 更多