Emacs:重新绑定数字(野兽编辑器VI VI VI)

3

刚从vi转到Emacs。

我想将键盘顶部的所有数字重新绑定到它们的大写形式(例如,1映射为!,2映射为@,等等),同时保持数字键盘数字仍为数字。

我成功地重新映射了数字,键盘上方的数字正确地映射到符号;但是,这也将数字键盘上的数字映射为符号。因此,我试图重新映射数字键盘上的数字,使其再次成为数字,但这是不成功的-它们仍然是符号。

在使用vi时,这很简单易行,但我更喜欢继续使用Emacs。有人有解决方案吗?

示例.emacs:

(global-set-key "1" "!")
; etc...

(global-set-key [kp-1] "1")
; etc...
2个回答

5
也许可以像这样:

可能是这样的:

(global-set-key (kbd "<kp-1>") "1")
(keyboard-translate ?1 ?!)

我会使用xmodmap来更改整个系统的按键,而不仅仅是在Emacs中。


您可能也想看一下这个答案:https://dev59.com/e1TTa4cB1Zd3GeqPtIVp#5066313 - phils

1

试试这个:

(global-set-key "1" "!")
(global-set-key [kp-1] (lambda () (interactive) (insert "1")))

顺便提一句,我经常在global-set-key中使用(lambda () (interactive) ...),并为其创建别名:

(defmacro ilam (&rest body)
  "Interactive lambda"
  `(lambda ()
     (interactive)
     ,@body))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接