我正在尝试在Emacs24中实现以下行为:
我喜欢使用不同的主题(日光与日光),具体取决于我是否通过端子架连接到正在运行的服务器
% emacsclient -t
或带有gtk框架
% emacsclient -c
这似乎在较旧的Emacs中有效,但是当前的Emacs我找不到方法。我经常检查SO(例如/programming//q/18904529/152439和答案)和邮件列表(例如https://lists.gnu.org/archive/html/help-gnu-emacs/ 2012-02 / msg00227.html和https://lists.gnu.org/archive/html/help-gnu-emacs/2012-02/msg00237.html)。
我当前的设置如下所示:
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes/solarized")
(if (daemonp)
(add-hook 'after-make-frame-functions
(lambda (frame)
(select-frame frame)
(if (display-graphic-p frame)
(load-theme 'solarized-light t)
(load-theme 'solarized-dark t)
)
)
)
(load-theme 'solarized-light t)
)
问题是,如果我打开一个图形框架,然后使用打开一个终端框架emacsclient -t
,则主题solarized-dark会同时应用于新的终端框架(正确)和已经打开的图形框架(应该保留)最好保持原样)。当终端框架已经打开并且我使用打开一个新的图形框架时,就会发生这种情况emacsclient -c
。
编辑:万一当前的Emacs24无法做到这一点,是否有任何计划使其再次成为可能?
color-theme.el
具有框架相关颜色设置的IIRC。除了普遍存在之外,使用内置主题功能没有太大优势。
color-theme
Emacs 24主题系统和Emacs 24主题系统都提供了本地缓冲区主题支持。如果您决定走这条路线,我的solarized主题版本也支持两个系统。