Выделенное окно для режима Dired в Emacs? - PullRequest
5 голосов
/ 22 ноября 2010

У меня emacs ведет себя более или менее так, как я хочу, используя этот общий бит elisp:

(defun toggle-current-window-dedication ()
 (interactive)
 (let* ((window    (selected-window))
        (dedicated (window-dedicated-p window)))
   (set-window-dedicated-p window (not dedicated))
   (message "Window %sdedicated to %s"
            (if dedicated "no longer " "")
            (buffer-name))))

(global-set-key [pause] 'toggle-current-window-dedication)

К сожалению, dired использует каталог для имени буфера, поэтому выделение dired окна только выделяет его для этого каталога. Как только вы перемещаетесь вверх или вниз, он открывает новый буфер в отдельном окне. То, что я хотел бы сделать, это выделить окно для основного режима (в этом случае - dired) и иметь все новые буферы, которые по умолчанию для этого режима предпочитают это окно. Возможно ли это?

Ответы [ 2 ]

4 голосов
/ 25 ноября 2010

Попробуйте использовать свой код в сочетании с dired-single, что приведет к тому, что вся переадресация будет происходить в одном буфере с именем *dired*.В интересах полного раскрытия я написал dired-single.

3 голосов
/ 22 ноября 2010

set-window-dedicated-p заставляет Emacs показывать это окно только для этого буфера, другие зашифрованные буферы не могут использовать это окно. См. * info * страницу для set-window-dedicated-p:

`display-buffer '(* note Выбор Окно: :) никогда не использует выделенный окно для отображения другого буфера в нем.

Возможно, один из пакетов на вики-странице для DiredReuseDirectoryBuffer предоставляет требуемую функциональность ...

...