embark 有些时候 export 结果的时候会使用 occur-mode 的 buffer,但是这个 buffer 里面没有 vim 按键绑定,用着很别扭,这个有办法处理么?我感觉这个是 doom emacs 的 bug。。
我看 evil-collections 里面是有关于 occur-mode 的代码的。。
我直接使用的是 evil-collections 没有任何问题。
可以看一下变量evil-collection-mode-list
是否包括了replace
有唉。。。
(2048-game ag alchemist anaconda-mode apropos arc-mode atomic-chrome auto-package-update beginend bm bookmark
(buff-menu "buff-menu")
calc calendar cider cmake-mode comint company compile consult corfu
(custom cus-edit)
cus-theme daemons dashboard deadgrep debbugs debug devdocs dictionary diff-hl diff-mode dired dired-sidebar disk-usage doc-view docker ebib ebuku edbi edebug ediff eglot explain-pause-mode elfeed eldoc elisp-mode elisp-refs elisp-slime-nav embark emms epa ert eshell eval-sexp-fu evil-mc eww fanyi finder flycheck flymake forge free-keys geiser ggtags git-timemachine gnus go-mode grep guix hackernews helm help helpful hg-histedit hungry-delete ibuffer image image-dired image+ imenu imenu-list
(indent "indent")
indium info ivy js2-mode leetcode lispy log-edit log-view lsp-ui-imenu lua-mode kotlin-mode macrostep man
(magit magit-repos magit-submodule)
magit-section magit-todos markdown-mode monky mpc mu4e mu4e-conversation neotree newsticker notmuch nov
(occur replace)
omnisharp org org-present org-roam osx-dictionary outline p4
(package-menu package)
pass
(pdf pdf-tools)
popup proced prodigy profiler python quickrun racer racket-describe realgud reftex restclient rg ripgrep rjsx-mode robe rtags ruby-mode scheme scroll-lock selectrum sh-script shortdoc simple simple-mpc slime sly snake so-long speedbar tablist tar-mode telega
(term term ansi-term multi-term)
tetris thread tide timer-list transmission trashed tuareg typescript-mode vc-annotate vc-dir vc-git vdiff vertico view vlf vterm vundo w3m wdired wgrep which-key woman xref xwidget yaml-mode youtube-dl zmusic
(ztree ztree-diff))
确认了应该就是 doom emacs 的 bug。对新的 evil-collection 支持的有问题,把 evil-collection 回退到 0.0.8 版本就可以了。
我也遇到了这个问题,好像是因为 evil-collection 把涉及 occur 的程序文件换了位置并改了名字。
我没有回滚,通过在配置文件中加入这个可以解决:
(after! evil
(add-to-list 'evil-collection-mode-list 'replace))
应该和这位的意思一样(注意,并不是包括(occur replace)
,而是replace
)
1 个赞
突然发现还是不能用,之前稀里糊涂可以用的,可能是没调试好……
又看了一下代码,在.doom/config.el
里加上这个就可以了(虽然提 PR 修复一下更直接)
(after! evil
(add-to-list 'evil-collection-mode-list 'replace)
(delete '(occur replace) evil-collection-mode-list)
(advice-remove 'occur-mode #'doom--transient-8-h)
(unintern 'doom--transient-8-h nil)
(add-transient-hook! 'occur-mode
(+evil-collection-init 'replace)))