2013-01-10 56 views
2

我希望能夠點擊空格鍵,接下來是另一個鍵可以替代按Ctrl並且正常邪惡模式狀態下的關鍵。想要使用空格鍵,然後在Emacs的正常邪惡模式狀態下使用空格鍵代替C鍵

例如,這是我在我的.emacs文件中啓動的定義:

(define-key evil-normal-state-map " ww" 'evil-window-next) 
(define-key evil-normal-state-map " wr" 'evil-window-rotate-downwards) 
(define-key evil-normal-state-map " wR" 'evil-window-rotate-upwards) 
(define-key evil-normal-state-map " wo" 'delete-other-windows) 
(define-key evil-normal-state-map " wn" 'evil-window-new) 
(define-key evil-normal-state-map " wl" 'evil-window-right) 
(define-key evil-normal-state-map " wh" 'evil-window-left) 
(define-key evil-normal-state-map " wj" 'evil-window-down) 
(define-key evil-normal-state-map " wk" 'evil-window-up) 

據我所知,到目前爲止,它好像我只能定義一個鍵序列作爲給定功能,而不是像自己不能使用的東西,比如Ctrl。是否有這樣做,使空格鍵再按下另一個按鍵就等於在危機模式的正常狀態的任何C-"that key"的一般方法是什麼?

回答

2

我不知道有足夠的瞭解邪惡,給你一個明確的答案,但你可以嘗試

(define-key function-key-map " " 'event-apply-control-modifier) 
(define-key evil-normal-state-map " " nil) 

function-key-map綁定將只踢如果SPC是「綁定」在所有其他地圖,所以將其綁定到零的evil-normal-state-map可能是不夠的。否則,你可以使用key-translation-map代替function-key-map,所以重寫將優先正常SPC綁定,但隨後你需要弄清楚如何啓用/禁用enering /離開邪惡的正常狀態時,此綁定。

+1

嘗試過了,只有'鍵的翻譯,map'的伎倆,而不是'功能鍵map'。我想我必須找到一個方法來啓用/禁用像你說的進入和出來的邪惡的正常狀態的時候,所以我仍然可以鍵入一個空格,當我需要綁定。另外,有沒有辦法可以在Emacs的初始化中首先綁定到'function-key-map',以便在任何其他綁定之前完成? – dg123