одно окно в режиме Dired?(эмакс)
-
23-09-2019 - |
Вопрос
Есть ли способ заставить Dired работать в одном окне, чтобы при прохождении через каталоги у меня не было n количества буферов Dired для промежуточных каталогов?Однако, если я запускаю другой буфер прямого доступа в совершенно отдельном каталоге (из минибуфера, а не нажимаю [enter] в подкаталоге в уже открытом экземпляре прямого доступа), я бы хотел сохранить два отдельных буфера прямого управления...Наверное, я использую ido-dired, так как у меня включен ido-mode, но я не знаю, будет ли решение другим?Большое спасибо!
Решение
Я уменьшаю dired-buffer
беспорядок, ударив а (dired-find-alternate-file
) в подкаталогах, а не РЭТ;который перезапускает текущее удаленное окно.
Другие советы
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...
Диред+ позволяет вам делать это по желанию и включать/выключать его в любое время.
Смотрите также http://www.emacswiki.org/emacs/DiredReuseDirectoryBuffer.
Так?
(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)
))
Если вы в основном хотите, чтобы каждый направляемый буфер работал с различными подкаталогами, которые находятся в одной иерархии (например,один буфер для каждого из нескольких текущих проектов), вы можете использовать встроенный i
(dired-возможно-вставить-подкаталог) и k
(линии Dired-Do-Kill в заголовке вставленного подкаталога, чтобы удалить его из буфера).Они позволят вам редактировать несколько каталогов внутри одного буфера.Возможно, вам понадобится небольшая пользовательская команда и переназначить RET
если это слишком укоренилось в вашей мышечной памяти.