2014-03-31 77 views
3

剛剛從vi中加入Emacs。Emacs:重新綁定數字(Beast VI VI VI編輯器)

我想重新鍵入鍵盤頂部的所有數字到其相對位置(即1個映射到!,2個映射到@等),同時將數字鍵盤數字保持爲簡單數字。

我重新映射了數字,並且鍵盤頂部的數字正確映射到符號;然而這也將小鍵盤數字映射到符號。作爲迴應,我試圖重新將鍵盤數字重新映射回數字,但這不成功 - 它們保留爲符號。

當我使用vi時,這很簡單易行,但我更願意繼續使用Emacs。任何人都有解決方案?

樣品的.emacs:

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

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

回答

5

也許是這樣的:

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

我會實際使用xmodmap更改鍵在整個 系統,而不只是Emacs的。

+0

這個作品 - 感謝您的幫助。 – user3355020

+0

你也可以看看這個答案以及:http://stackoverflow.com/a/5066313/324105 – phils

1

試試這個:

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

附:我經常使用(lambda()(interactive)...)在global-set-key中,併爲它創建別名:

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