我不喜歡插入狀態,所以我想用emacs-state替換它。但這種設置不起作用:Emacs evil-mode如何將插入狀態自動更改爲emacs狀態
(add-hook 'evil-insert-state-entry-hook 'evil-emacs-state)
按Ø或CW後,我仍然在插入狀態。
我不喜歡插入狀態,所以我想用emacs-state替換它。但這種設置不起作用:Emacs evil-mode如何將插入狀態自動更改爲emacs狀態
(add-hook 'evil-insert-state-entry-hook 'evil-emacs-state)
按Ø或CW後,我仍然在插入狀態。
告訴我如何工作的。這是一個基本上取代功能evil-insert-state
與evil-emacs-state
。問題是搞清楚如何用退出鍵退出emacs狀態。
; redefine emacs state to intercept the escape key like insert-state does:
(evil-define-state emacs
"Emacs state that can be exited with the escape key."
:tag " <EE> "
:message "-- EMACS WITH ESCAPE --"
:input-method t
;; :intercept-esc nil)
)
(defadvice evil-insert-state (around emacs-state-instead-of-insert-state activate)
(evil-emacs-state))
從文檔中關於evil-emacs-state-entry-hook
:
掛鉤進入Emacs的狀態下運行。
所以,當你進入emacs-state
(與C-Z^)的evil-emacs-state
功能運行。
你可以,但是,這樣做:
(define-key evil-normal-state-map (kbd "i") 'evil-emacs-state)
現在的問題是退出emacs的狀態。我記得在emacs狀態下有一些綁定ESC
的問題,因爲ESC
被用作META
,並且(IIRC)Evil使用一些「特殊」代碼來截獲ESC
密鑰。
編輯:您的評論如下:這個應該工作:
(fset 'evil-insert-state 'evil-emacs-state)
謝謝,我已經改變了關鍵圖。我只想把o/O,cw改爲evil-emacs-state,而不是evil-insert-state。 – transtone 2014-08-28 16:08:33
如果一點是,你要使用正常的Emacs編輯在做的時候:比如,當我退出Emacs狀態與ESC
關鍵,而不是當我嘗試做相同的C-[
這個版本工作正常vi使用插入模式的任務類型,然後擦除插入模式字典來完成此操作。可能希望ESC鍵讓你回到正常模式,並讓C-z讓你進入Emacs狀態; Leo Alekseyev posts的代碼一點點,這是否:
(setcdr evil-insert-state-map nil)
(define-key evil-insert-state-map
(read-kbd-macro evil-toggle-key) 'evil-emacs-state)
我使用和喜歡。插入模式有兩個潛在的缺點,而不是emacs模式:
我不認爲這兩個問題都很嚴重。
驚訝沒有人發佈了這個呢...
(defalias 'evil-insert-state 'evil-emacs-state)
凡是試圖調用evil-insert-state
最終只會調用evil-emacs-state
。適用於I,A,O,O等
謝謝!我做了另一種方式,雖然:) – keymone 2016-10-02 10:15:42
如何對這種做法:
(setq evil-insert-state-map (make-sparse-keymap))
(define-key evil-insert-state-map (kbd "<escape>") 'evil-normal-state)
我使用它,它似乎這樣的伎倆。由於你沒有改變狀態,你保留了狀態相關的配置,如光標顏色等。
整潔,簡單,效果很好,謝謝!我還推薦'(define-key evil-insert-state-map(kbd「C-o」)'evil-execute-in-normal-state)'仍然能夠從插入狀態執行一次性邪惡命令 – tlegutko 2017-07-08 18:45:27
「問題是搞清楚如何用退出鍵退出emacs狀態。」這不是一個問題。我已經這樣做了:(define-key evil-emacs-state-map [escape]'evil-normal-state) o(evil-open-below)的某些動作與邪惡插入狀態在文件惡-insert.el – transtone 2014-08-28 23:26:50
它的工作原理!謝謝。 – transtone 2014-08-28 23:39:34