【发布时间】:2014-06-11 00:19:53
【问题描述】:
我在 OS X 10.9 (Mavericks) 上使用来自 emacsformacosx.com 的 emacs 24.3。 Debian Wheezy 上的 emacs 23.4.1 上的行为相同。
我想自动应用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* 窗口在挂钩中显示为专用,但之后却没有?我在这里做错了什么?
【问题讨论】: