我试过
(add-to-list 'evil-emacs-state-modes 'calc-mode)
(evil-set-initial-state 'calc-mode 'emacs)
都不行,一打开calc, 还是normal state。
我试过
(add-to-list 'evil-emacs-state-modes 'calc-mode)
(evil-set-initial-state 'calc-mode 'emacs)
都不行,一打开calc, 还是normal state。
我这里可以啊。
你打开的 calc 是 M-x calc
么? 还是 M-x calculator
用的是 calc
, 不过把 init.el
中 evil 的 +everywhere
flag 去掉之后就可以了,不知道被什么覆盖了,但如果取消 +everywhere
,就会卸载evil-tex
等插件。
既然知道问题所在,为什么不看一下配置代码。
还没有来的及看,需要查看 +everywhere
相关的代码,正在考虑还要不要在这些不可编辑的mode用 evil bindings.
modules/editor/evil/init.el
里面的变量
+evil-collection-disabled-list
中有 calc
, evil-collection-mode-list
里面还有 calc
, 还有配置代码
(add-transient-hook! 'calc-mode
(+evil-collection-init 'calc))
水平有限,搞不清代码。
加个 hook 算啦,(add-hook! 'calc-mode-hook 'evil-emacs-state)。
因为 calc
是自带的,所以对于这种包如果使用了 evil-collection
就会自动调用相
关的 evil-collection
初始化函数。在调用 evil-collection
初始化函数的过程中会
显示地 (require 'calc)
(这个会触发其他的 with-eval-after-load 'calc
初始块),doom 为了加快启动速度,于是针对这种情况做了延迟加载优
化,只在它第一次被使用的时候调用 evil-collection
对应的初始化函数(对应的是那个 add-transient-hook!
调用)。
在 evil-collection
里会设置
(evil-set-initial-state 'calc-mode 'normal)
由于你的设置是发生在这个调用之前的,所以你的设置就会被覆盖了。
谢谢,讲的很清楚。