【求助】doom-emacs 下 evil operator 无法操作完整的行

今天把doom-emacs和包更新后,出现evil operator无法操作正行的问题。比如有一下文字,光标在s上,按vj会选中部分行,这个好像正常。

Screen Shot 2021-03-10 at 10.05.14 PM

取消选择,按dj后,没有删除两个整行,只删除了上面高亮的部分。

Screen Shot 2021-03-10 at 10.05.39 PM

复制也是只能复制高亮的部分。

Screen Shot 2021-03-10 at 10.09.16 PM

和之前的效果不一样,之前可以删除或复制完整的行,不知道要怎么解决,没有头绪。

你现在的j/k是visual-line而不是logical-line。找找自己的配置,是不是哪里把j/k绑定到evil-next-visual-lineevil-previous-visual-line上了。

好像只有magit-mode下才绑定到j/k,其他地方没有绑定。

原来是visual line mode的问题, evil添加一句 (defvar evil-respect-visual-line-mode t). 禁用就行了。

好像要关掉visual line mode, (setq evil-respect-visual-line-mode nil) 好像不行。要在加载evil前设置才行,不知道doom-emacs怎么在加载evil前设置。

在配置里放:

(use-package evil
:defer t
:init
(setq evil-respect-visual-line-mode nil))

好像不行,我之前问过这个问题,doom-emacs配置已经有了(use-package evil), 当同时存在多个use-package时, 最后出现的use-package中的:init是否还起作用?

(setq evil-respect-visual-line-mode nil) 放到 init.el就可以了,不知道这样用好不好。

(use-package foo
:init (blah blah)

这个blah blah一定会在foo这个包之前执行,是否一定在别的包加载之前执行不一定

1 个赞

但是针对我这个问题,好像不起作用