imenu-list怎么禁用evil

imenu-list怎么禁用evil

这个问题建议问chatGPT,不明白为什么有些人觉得chatGPT没用,认为是骗局

如果你在Emacs中使用了Evil模式,并且想要禁用imenu-list插件,可以在Evil模式下添加一个局部按键绑定,将imenu-list-toggle命令绑定到一个无操作的命令上。这样,当你在Evil模式下按下imenu-list-toggle绑定的按键时,实际上并不会触发imenu-list-toggle命令,从而达到禁用imenu-list插件的效果。

以下是具体步骤:

打开你的Emacs配置文件(一般是~/.emacs或~/.emacs.d/init.el)。

在文件末尾添加以下代码:

Copy ;; 在Evil模式下禁用imenu-list ;; 在Evil模式下禁用imenu-list

(evil-define-key 'normal imenu-list-major-mode-map
  (kbd "SPC") 'nil)

这个代码将imenu-list-major-mode-map中SPC键的绑定映射到nil,即无操作。这样,在Evil模式下按下SPC键时,不会触发imenu-list-toggle命令。

保存配置文件并重新加载Emacs配置。 现在,当你在Evil模式下按下SPC键时,就不会触发imenu-list-toggle命令了。如果你要重新启用imenu-list插件,只需要注释掉或删除这段代码即可。

需要注意的是,这种方法只是禁用了imenu-list插件在Evil模式下的按键绑定,但插件本身仍然是激活状态。如果你要完全禁用imenu-list插件,可以考虑在Emacs配置文件中将插件的加载代码删除或注释掉。

注:因为我问反了,所有上面的回答应该是不正确的,只是提个建议

试试 (evil-set-initial-state 'imenu-list-major-mode 'emacs)

如果想在imenu-list窗口中禁用evil-mode

(add-hook 'imenu-list-major-mode-hook (lambda () (evil-local-mode -1))

如果只是想使用默认定义的按键,可以使用

(with-eval-after-load 'evil
  (evil-make-overriding-map imenu-list-major-mode-map 'normal))
1 个赞