Emacs:Rebind数字(Beast VI VI VI的编辑)

时间:2014-03-31 09:36:12

标签: emacs keyboard-shortcuts

从vi。

来到Emacs

我想将键盘顶部的所有数字重新绑定到它们的移位对应物(即1个映射到!,2个映射到@等),同时将数字键盘数字保持为简单的数字

我重新编写数字就好了,键盘顶部的数字正确映射到符号;但是,这也将键盘数字映射到符号。作为回应,我试图将键盘数字重新重新映射回数字,但这是不成功的 - 它们仍然是符号。

当我使用vi时,这很容易实现,但我更愿意继续使用Emacs。有人有解决方案吗?

示例.emacs:

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

(global-set-key [kp-1] "1")
; etc...

2 个答案:

答案 0 :(得分:5)

也许是这样的:

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

我实际上会使用xmodmap来更改整个键 系统,而不仅仅是Emacs。

答案 1 :(得分:1)

试试这个:

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

P.S。我经常在global-set-key中使用(lambda()(交互式)...)并为它创建别名:

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