Emacs中每种模式的不同颜色主题

Ame*_*ina 11 emacs elisp term dired

我怎样才能请求Emacs取决于自动使用不同的颜色主题(例如,使用的elisp ColorTheme包)模式中的缓冲区

编辑代码时,某些颜色主题效果很好,但在Dired +,TERM或shell模式下则不然.

谢谢

Mat*_*ell 12

您似乎无法为不同的缓冲区设置单独的颜色主题,但您可以为不同的帧设置它.您可以在http://www.emacswiki.org/emacs/ColorTheme#toc8找到有关设置每帧颜色主题的说明.

您可以使用加载挂钩在加载模式时自动更改颜色主题,但它会将更改应用于所有缓冲区.

使用加载钩子加载模式时,可以更改颜色主题.例如

(add-hook 'dired-mode-hook 'color-theme-emacs-nw)
Run Code Online (Sandbox Code Playgroud)

编辑:这是一个使用不同颜色主题在新框架中打开shell的函数:

(defun my-shell () 
       (interactive)
         (let ((color-theme-is-global nil))
          (select-frame (make-frame))
          (color-theme-gnome)
                         (shell)))
Run Code Online (Sandbox Code Playgroud)

  • +1不错的答案,我是来这里建议`mode-hook`可以切换主题的,然后了解`color-theme-is-global`的知识,谢谢。 (2认同)

jer*_*tbt 7

load-theme-buffer-local(或者color-theme-buffer-local.el如果您使用pre emacs 24主题)可以为每个缓冲区设置不同的面.你的背景保持不变.

您可以像这样模式挂钩:
(add-hook 'js2-mode-hook (lambda nil (load-theme-buffer-local 'tango (current-buffer))))

这些软件包可以在MELI(M-x install-package RET load-theme-buffer-local),github上的源代码和自述文件中找到