直接模式单窗口? (emacs的)

时间:2010-03-02 10:16:52

标签: emacs elisp file-management dired

有没有办法让dired在单个窗口中运行,这样当我遍历目录时,我没有n个中间目录的dired缓冲区?但是 - 如果我在一个完全独立的目录中启动另一个dired缓冲区(来自迷你缓冲区,而不是在已打开的dired实例中的子目录上按[enter])我想保留两个单独的dired缓冲区......我想我我使用ido-dired,因为我有ido-mode但我不知道解决方案会有所不同?非常感谢!

5 个答案:

答案 0 :(得分:19)

我通过在子目录上点击 a dired-buffer)来减少dired-find-alternate-file混乱,而不是 RET ;循环使用当前的直接窗口。

答案 1 :(得分:11)

http://www.emacswiki.org/emacs/dired-single.el

;;; dired-single.el --- Reuse the current dired buffer to visit another directory...

;;; Commentary:
;;
;;  This package provides a way to reuse the current dired buffer to visit
;;  another directory (rather than creating a new buffer for the new directory).
;;  Optionally, it allows the user to specify a name that all such buffers will
;;  have, regardless of the directory they point to...

答案 2 :(得分:2)

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

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

答案 3 :(得分:1)

喜欢这个吗?

(defadvice dired-find-file (around kill-old-buffer activate)
    "When navigate from one dired buffer to another, kill the old one."
    (let ((old-buffer (current-buffer))
          (new-buffer (dired-get-filename))) 
      ad-do-it
      (kill-buffer old-buffer)
      (switch-to-buffer new-buffer)
))

答案 4 :(得分:1)

如果您最希望让每个dired缓冲区都与各个子层次结构一起工作(例如,对于几个正在进行的项目中的每一个都有一个直接缓冲区),则可以使用内置的i(< em> dired-maybe-insert-subdir )和k dired-do-kill-lines 在插入的子目录的标头上将其从缓冲区中删除)命令。它们将允许您在单个dired缓冲区内编辑多个目录。您可能需要一个小的自定义命令,如果它在您的肌肉记忆中根深蒂固,则重新映射RET