我如何要求Emacs根据缓冲区的模式自动使用其他颜色主题(例如,使用Elisp ColorTheme包)?
在编辑代码时,某些颜色主题效果很好,但在Dired +,TERM或Shell模式下则不能。
谢谢
最佳答案
似乎无法为不同的缓冲区设置单独的颜色主题,但是可以为不同的帧设置颜色主题。您可以在http://www.emacswiki.org/emacs/ColorTheme#toc8中找到有关设置每帧颜色主题的说明。
您可以使用加载 Hook 在加载模式时自动更改颜色主题,但是它将更改应用于所有缓冲区。
您可以在使用加载 Hook 加载模式时更改颜色主题。例如
(add-hook 'dired-mode-hook 'color-theme-emacs-nw)
编辑:这是一个使用不同颜色主题在新框架中打开 shell 的函数:
(defun my-shell ()
(interactive)
(let ((color-theme-is-global nil))
(select-frame (make-frame))
(color-theme-gnome)
(shell)))