2013-10-18 45 views
2

我試圖在邪惡的正常模式下將execute-extended-command綁定到M-x。 我現在有如何在emacs邪惡模式下保留M-x的傳統綁定

;; evil mode 
(require 'evil) 
(evil-mode 1) 

(define-key evil-normal-state-map "M-x" 'execute-extended-command) 
在我的.emacs文件

但鍵綁定不起作用。我試着用

"\M-x" 

(kbd "M-x") 

但既不作品代替

"M-x" 

。我也嘗試將它添加到evil.el和evil-maps.el。

+0

那麼你是否特別想在插入模式下將其他映射到'M-x'? – progo

回答

1

經過長期的研究,並從IRC#emacs和#邪惡模信道的幫助,事實證明,我的emacs被打破。這是來自http://emacs.naquadah.org/的快照我在另一個emacs版本(來自debian jessies repos)嘗試了所有這些,並且它工作正常。

+0

如果這爲你工作,請接受你自己的答案。 :) –

1

我不知道你的綁定有什麼問題。你可以使用Emacs自己的global-set-key全球的東西,如果你計劃一些特殊的發言權,插入模式中,你可以重寫以後,像這樣:

;; this works, just tested. My evil is 1.0-dev from github. 
(global-set-key (kbd "M-x") 'smex) 
(define-key evil-insert-state-map (kbd "M-x") 'execute-extended-command) 

使用(kdb "")宏,當你有組合鍵在你的綁定。但是無論內容如何,​​您都可以始終使用宏。這些是例如用法。如有疑問,請將鑰匙包裝在(kdb)中。

(global-set-key (kbd "M-x") 'smex) 
(global-set-key (kbd "M-X") 'smex-major-mode-commands) 
;;(global-set-key (kbd "M-x") 'execute-extended-command) 

(define-key evil-normal-state-map ",d" 'volatile-kill-buffer) 
(define-key evil-normal-state-map ",b" 'ido-switch-buffer) 
(define-key evil-normal-state-map ",s" 'ispell-word) 

(define-key evil-normal-state-map (kbd "C-x g") 'magit-status) 
(define-key evil-insert-state-map (kbd "C-f") 'my-expand-file-name-at-point) 
(define-key evil-insert-state-map (kbd "C-x C-l") 'my-expand-lines) 

(define-key minibuffer-local-map (kbd "C-w") 'backward-kill-word) 
(define-key evil-normal-state-map (kbd ",ff") 'ido-find-file) 
相關問題