首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Emacs:带有数字键的前缀命令参数

Emacs:带有数字键的前缀命令参数
EN

Stack Overflow用户
提问于 2013-09-19 09:31:46
回答 2查看 600关注 0票数 2

使用法语键控器,在不保持移位的情况下无法访问常规数字,我想使用numpad来发送前缀/数字参数和emacs命令。例如M-4 C-bM-6 C-k,等等.

本机,如果我尝试这样做,点击键盘,我得到<M-kp-2> is undefined

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

(我经历过emacs文档,但没有发现任何线索)

EN

回答 2

Stack Overflow用户

发布于 2013-09-19 15:25:27

这是个好问题。像<kp-2>这样的键在universal-argument-map中都被正确绑定到digit-argument<kp-subtract>被绑定到universal-argument-minus等,但是元修饰符没有被教去处理它们wrt universal-argument-map

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

代码语言:javascript
复制
 (define-key local-function-key-map [M-kp-2] [?\C-2])

这是可行的,而且它似乎与local-function-key-map中的其他键盘键绑定并行。

顺便说一句,光这样做是不够的:

代码语言:javascript
复制
 (define-key universal-argument-map (kbd "<M-kp-2>") 'digit-argument)

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

票数 3
EN

Stack Overflow用户

发布于 2014-09-07 12:01:30

将以下代码添加到init文件(解决方案取自Nicolas此处https://lists.gnu.org/archive/html/bug-gnu-emacs/2013-05/msg00365.html):

代码语言:javascript
复制
(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>映射到相应的键绑定。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18891070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档