簡體   English   中英

如何在emacs邪惡模式下保持Mx的傳統綁定

[英]How to keep traditional binding on M-x in emacs evil mode

我試圖在邪惡的正常模式下將execute-extended-command綁定到Mx。 我現在有

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

(define-key evil-normal-state-map "M-x" 'execute-extended-command)

在我的.emacs文件中,但鍵綁定不起作用。 我試過更換

"M-x"

"\M-x"

(kbd "M-x")

但都不起作用。 我也嘗試將它添加到evil.el和evil-maps.el中。

我不知道你的綁定有什么問題。 你可以使用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)

經過長時間的研究,並在irc上的#emacs和#evil-mode頻道的幫助下,結果證明我的emacs已被破壞。 這是來自http://emacs.naquadah.org/的快照。我在另一個emacs版本(來自debian jessies repos)上嘗試了所有這些並且它工作正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM