从vi。
来到Emacs我想将键盘顶部的所有数字重新绑定到它们的移位对应物(即1个映射到!,2个映射到@等),同时将数字键盘数字保持为简单的数字
我重新编写数字就好了,键盘顶部的数字正确映射到符号;但是,这也将键盘数字映射到符号。作为回应,我试图将键盘数字重新重新映射回数字,但这是不成功的 - 它们仍然是符号。
当我使用vi时,这很容易实现,但我更愿意继续使用Emacs。有人有解决方案吗?
示例.emacs:
(global-set-key "1" "!")
; etc...
(global-set-key [kp-1] "1")
; etc...
答案 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))