如何阻止emacs dired模式打开这么多缓冲区?

时间:2009-12-03 11:21:21

标签: emacs file-management dired

当我使用dired mode浏览并找到我想在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缓冲区?

6 个答案:

答案 0 :(得分:51)

使用 a dired-find-alternate-file)代替输入

另请参阅此页:

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

答案 1 :(得分:11)

在dired中浏览而不是按Enter键查看目录时使用 i 然后将该目录添加到当前缓冲区。

答案 2 :(得分:7)

我从来没有设法让toggle-dired-find-file-reuse-dir可靠地工作 - 我最终还是打开了各种各样的直接缓冲区,而且我也不确定如何。

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

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

希望有所帮助!

西蒙

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

来自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

答案 5 :(得分:-1)

dired-x允许这样做 - 执行M-x customize-group dired-x并将'Dired Find Subdir'设置为