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

如何阻止emacs dired模式打开这么多缓冲区?,emacs,file-management,dired,Emacs,File Management,Dired,当我使用“浏览”并在Emacs中查找要打开的文件时,dired会在每次使用Enter键选择目录时为我访问的每个目录打开一个新的缓冲区,这意味着我可能会得到很多我不想要的缓冲区: . * newer 0 Fundamental c:/work/stackoverflow/batch/mydir/newer % mydir 302 Dired by name c:/work/stackoverflow

当我使用“浏览”并在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自定义组
,但没有看到任何有希望的结果


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

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

dired-x允许-do M-x自定义组dired-x并将“dired Find Subdir”设置为on

使用(
直接查找备用文件
)而不是输入

此外,请参见本页:


我从未设法让toggle-dired-find-file-reuse-dir可靠地工作-我仍然会打开各种各样的dired缓冲区,我也不太确定如何打开

最近,我发现dired single()对我来说似乎更好。如果你需要,它可以保证一个dired缓冲区,并且还有一个很好的命令dired single magic buffer,如果你有,它会带你到开放的dired缓冲区,如果你没有,它会打开一个

如果不是多个dired缓冲区本身让你烦恼,而是它们污染了你的缓冲区列表,那么还有一些其他的选择。例如,elscreen.el有一个dired插件,它将dired缓冲区保存在自己的选项卡中,优秀的ibuffer模式允许你在列出缓冲区时将dired缓冲区分组在一起

希望有帮助

Simon允许您随意地执行此操作,并允许您随时打开/关闭

另请参见。

摘自Xah Lee,网址:


+1这确实有帮助,但我不确定我是否喜欢在一个缓冲区中有很多目录。+1对于这一点,还有一个事实,在
I
之后,点击
^
DWIM。这正是我想要的。如果用
a
打开文件,甚至可以完全删除dired缓冲区!返回父目录如何?我使用^但这样做会创建一个新的dired缓冲区。@avendael请查看解决方案。我认为这会有不同的效果。
;; 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