通过使用这个常见的 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),并让默认为该模式的所有新缓冲区更喜欢该窗口。这可能吗?