You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Dired中使用Evil-Mode或自动禁用Evil-Mode的方法求助

在Dired中解决Evil-Mode导航问题的两种方案

方案一:自动禁用Dired中的Evil-Mode

你可以直接把dired-mode加入到evil-emacs-state-modes列表中,这样每次打开Dired缓冲区时会自动进入Emacs状态,无需手动按C-z。

修改你现有的rune/evil-hook函数,添加dired-mode即可:

(defun rune/evil-hook ()
  (dolist (mode '(custom-mode
                  eshell-mode
                  git-rebase-mode
                  erc-mode
                  circe-server-mode
                  circe-chat-mode
                  circe-query-mode
                  sauron-mode
                  term-mode
                  dired-mode))  ;; 新增这一行
    (add-to-list 'evil-emacs-state-modes mode)))

保存配置后重启Emacs,打开Dired就会自动使用原生Emacs键位操作。

方案二:配置Evil让Dired支持Vim风格导航

如果希望保留Evil的Vim键位习惯,只需调整Evil在Dired中的初始状态,并绑定适配Dired操作的键位:

在你的evil配置块的:config部分添加以下代码:

;; 设置Dired默认进入Normal状态
(evil-set-initial-state 'dired-mode 'normal)

;; 绑定Vim风格导航键到Dired操作
(define-key dired-mode-map (kbd "j") 'dired-next-line)
(define-key dired-mode-map (kbd "k") 'dired-previous-line)
(define-key dired-mode-map (kbd "l") 'dired-find-file)  ;; 按l打开文件/目录
(define-key dired-mode-map (kbd "h") 'dired-up-directory)  ;; 按h返回上级目录
(define-key dired-mode-map (kbd "d") 'dired-flag-file-deletion)  ;; 按d标记删除
(define-key dired-mode-map (kbd "x") 'dired-do-delete)  ;; 按x执行删除

这样配置后,你就能在Dired中用Vim风格的键位进行导航和操作,无需切换到Emacs状态。

内容的提问来源于stack exchange,提问作者Maxwell Midega

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 01:50:20