通过使用下面这段常见的elisp,我可以让emacs或多或少地按照我想要的方式运行:
(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),并让所有默认为该模式的新缓冲区优先于该窗口。这个是可能的吗?
发布于 2010-11-25 22:30:14
尝试将您的代码与dired-single结合使用,这将导致所有延迟导航发生在名为*dired*的单个缓冲区中。为了充分披露信息,我编写了dired-single。
发布于 2010-11-22 21:25:28
set-window-dedicated-p强制Emacs只显示该缓冲区的窗口,其他dired缓冲区不能使用相同的窗口。请参阅*info* page for set-window-dedicated-p
‘`display buffer’(*注意选择窗口::)从不使用专用窗口显示其中的另一个缓冲区。
也许DiredReuseDirectoryBuffer的维基页面上的某个包提供了您正在寻找的功能……
https://stackoverflow.com/questions/4244637
复制相似问题