15

我试图在 Emacs 中获得类似 Nerd Tree 的东西,并找到了 Nav,它就像基本的 emacs 文件导航器,它适合我。

问题是,当我打开 Nav 并切换到它的缓冲区时,邪恶模式仍然打开,C-z如果我想使用任何 Nav 特定命令(例如.for nav-toggle-hidden-files),我必须按下。这让我很恼火。

我试图通过粘贴来解决这个问题已经有几个小时了

(require 'evil)
    (evil-mode 0)

导航文件中的任何地方,但显然我做错了..而且我很确定在使用其他插件时它会再次发生..我该怎么做?

4

3 回答 3

12

如 evil wiki 上所述您可能想查看 evil-set-initial-state。

这是我的 emacs 配置的相关部分:

(evil-set-initial-state 'ibuffer-mode 'normal)
(evil-set-initial-state 'bookmark-bmenu-mode 'normal)
(evil-set-initial-state 'dired-mode 'emacs)
(evil-set-initial-state 'sunrise-mode 'emacs)

并没有减轻我肯定希望有一天在这些模式下拥有 vim 键绑定的事实......

于 2014-05-28T17:47:10.917 回答
11

您希望nav-mode缓冲区以 Emacs 状态而不是 Evil 的正常状态打开。我不知道nav-mode实际调用的是什么,但请执行以下操作,相应地调整模式的名称:

(add-to-list 'evil-emacs-state-modes 'nav-mode)

于 2014-05-22T11:07:33.673 回答
7

您需要的是“钩子”,它将告诉 Emacs 在什么条件下您希望特定模式处于活动状态或不处于活动状态。

我不使用evilor模式,但您想要与以下行nav非常相似.emacs的内容:

(add-hook 'nav-mode-hook 'turn-off-evil-mode)

该命令告诉 Emacs,当模式(其钩子在 中列出nav-mode-hook)处于活动状态时,运行函数turn-off-evil-mode。您可能必须根据实现方式nav-modeevil-mode实现方式修改挂钩列表名称或回调函数名称。

nav-mode-hook是我猜测nav-mode的钩子列表。如果它不起作用,请查看nav-mode文档,查找如何添加挂钩。

于 2014-05-22T05:19:04.803 回答