我正在使用来自emacsformacosx.com的OS X 10.9(Mavericks)上的emacs 24.3。在Debian Wheezy上,emacs 23.4.1的行为是相同的。
我想自动应用
我将这个放在我的
我知道我的钩子被调用以及它操作的缓冲区。但是 *Calculator* 缓冲区不是专用的 - 它的行为不正确,
为什么在钩子中 *Calculator* 窗口显示为专用窗口,但之后却不是?我在这里做错了什么?
我想自动应用
set-window-dedicated-p
,以便切换/打开缓冲区时不会使用某些窗口。例如,如果我在计算器中手动使用Meta-:
并输入(set-window-dedicated-p (get-buffer-window) t)
,然后它可以很好地工作——我的计算器窗口不会被其他缓冲区劫持。我希望它可以自动地像那样工作。我将这个放在我的
.emacs
文件中:(add-hook 'calc-mode-hook
(lambda ()
(message "Dedicating %s" (buffer-name))
(set-window-dedicated-p (get-buffer-window) t)
(message "Dedication %s" (window-dedicated-p (get-buffer-window "*Calculator*")))))
然后我启动emacs,切换到*Messages*窗口,并使用Meta-x
calc
。 *Messages*缓冲区显示
Dedicating *Calculator*
Dedication t
我知道我的钩子被调用以及它操作的缓冲区。但是 *Calculator* 缓冲区不是专用的 - 它的行为不正确,
Meta-:
(window-dedicated-p)
返回 nil
。相反,*Messages* 缓冲区是专用的。为什么在钩子中 *Calculator* 窗口显示为专用窗口,但之后却不是?我在这里做错了什么?