50

当我使用dired模式浏览并找到要在 Emacs 中dired打开的文件时,每次Enter使用我不想要的缓冲区:

. * newer                    0  Fundamental       c:/work/stackoverflow/batch/mydir/newer
 %  mydir                  302  Dired by name     c:/work/stackoverflow/batch/mydir/
 %  batch                  616  Dired by name     c:/work/stackoverflow/batch/
 %  stackoverflow         1017  Dired by name     c:/work/stackoverflow/
 %  work                  2545  Dired by name     c:/work/
  * *scratch*              190  Lisp Interaction
 %  *Completions*          162  Completion List
  * *Messages*            2163  Fundamental

有什么办法可以dired重复使用单个缓冲区?我尝试M-x customize-group了团体dired,但在那里没有看到任何有希望的东西。

或者,是否有人有一个宏来关闭所有打开的dired缓冲区?

4

6 回答 6

67

使用a( dired-find-alternate-file) 代替Enter

另外,请参阅此页面:

http://www.emacswiki.org/emacs/DiredReuseDirectoryBuffer

于 2009-12-03T11:59:46.050 回答
15

当浏览目录而不是按回车键查看目录使用i时,它将该目录添加到当前缓冲区。

于 2009-12-03T11:29:15.477 回答
7

我从来没有设法让 toggle-dired-find-file-reuse-dir 可靠地工作——我最终仍然打开了各种 dired 缓冲区,而且我不太确定如何。

最近我发现了 dired-single ( http://www.emacswiki.org/cgi-bin/wiki/dired-single.el ),它似乎对我更有效。如果你想要它保证一个单一的 dired 缓冲区,并且还有一个很好的命令 dired-single-magic-buffer,如果你有一个,它将带你到打开的 dired 缓冲区,如果你没有,则打开一个。

如果不是多个 dired 缓冲区本身令人烦恼,那么还有其他一些选择,就像它们污染缓冲区列表的方式一样。例如,elscreen.el 有一个 dired 插件,可以将 dired 缓冲区保存在自己的选项卡中,出色的 ibuffer 模式允许您在列出缓冲区时将 dired 缓冲区分组在一起。

希望有帮助!

西蒙

于 2009-12-03T19:49:52.877 回答
3

来自 Xah Lee,位于http://ergoemacs.org/emacs/emacs_dired_tips.html

;; Make dired open in the same window when using RET or ^
(put 'dired-find-alternate-file 'disabled nil) ; disables warning
(define-key dired-mode-map (kbd "RET") 'dired-find-alternate-file) ; was dired-advertised-find-file
(define-key dired-mode-map (kbd "^") (lambda () (interactive) (find-alternate-file "..")))  ; was dired-up-directory
于 2019-03-19T07:47:25.847 回答
2

Dired+让您可以选择执行此操作,它可以让您随时打开/关闭它。

另请参阅http://www.emacswiki.org/emacs/DiredReuseDirectoryBuffer

于 2011-08-21T21:08:00.330 回答
0

在 Emacs 28 中,您只需(setf dired-kill-when-opening-new-dired-buffer t). 这适用于dired-find-file( RET) 或dired-up-directory( ^)。

于 2021-08-27T10:57:16.127 回答