如何在emacs中找出当前的颜色主题


24

当emacs运行时,如何找出当前使用的颜色主题?

Answers:


19

当前主题没有概念,实际上,可以依次应用多个主题来附加定义活动面孔集。对主题的支持已添加到最新的Emacs版本中(请参阅参考资料M-x customize-theme),并且仍然可以选择“一次选择多个主题”。

简而言之,激活主题时,您不会切换到该主题,而是将主题中指定的更改应用于其列出的面和变量。

所有未明确放置在命名主题中的自定义实际上都放入了隐藏的用户主题,因此始终至少有一个活动主题。变量中列出了其他当前启用的主题custom-enabled-themes


4

分享一个使用彩色主题打印来获取我应用的主题的示例。

通过“ Mx color-theme-print”,您将获得有关颜色主题信息的输出,然后找到一个针对不同颜色主题唯一的典型值,我为emacs选择了“ background-color”,其值为537182。

打开颜色主题库“ color-theme-library.el”,然后使用关键字“ 537182”搜索文件,然后在其中找到主题名称。

尽管这不是直接的方法,但它确实有效,希望能有所帮助!


3

M-x color-theme-print准确告诉您哪些字体有效。它不会告诉您已应用了哪些命名颜色主题,但是您应该能够从init文件中解决该问题。如果不是,我想您必须使用一种应用自己的颜色主题的模式(我知道Proof General会这样做,并且最令人讨厌的是)。


1
显然,(require 'color-theme)首先
需要这样做

1

要增加sanityinc的响应,您可以自行设置,也可以将其放置在init.el(dotemacs)文件中。

我猜您是在问,因为您尝试了其中的一些却忘记了吗?我知道我有,我想知道您是否可以检查Messages缓冲区以查看最后一个应用程序。

@sanityinc也感谢您的解释。我注意到当我开始连续添加越来越多的主题时,某些区域(例如迷你缓冲区)将不会更改,或者会设置为最后一个主题的值。现在我知道为什么了。


在旧的color-theme程序包中,有一个名为的var color-theme-is-cumulative,您可以设置为var ,以nil使主题不会互相干扰。这听起来像是个好主意,但结果通常是完全出乎意料的,我认为部分原因是主题通常会对内置面孔做出假设。

是的,我也注意到了这个假设,当我编造一个假设时...我会从一个“受欢迎的”样本中复制一个,但是它的位置只有下一个假设的一半...等等。导致我想到一些主题只是更改了它“想要”的那些变量,并且有数百个更改,所以为什么要打扰。与此相关的是,我现在使用巧克力雨主题并且喜欢它。它已经在我的24.x版本上使用了很多个月。

1
我使用命令“ color-theme-select”尝试了几个颜色主题,我喜欢一个颜色主题,但是那时我已经关闭了color-theme-select缓冲区,而且我忘记了我选择的内容,所以我认为可能是一些变量存储当前正在应用的颜色主题。消息缓冲区中没有关于它的日志

也许您可以尝试M-x describe-face RET default RET(或使用其他非默认面孔),然后使用M-x rgrep来查找包含相同颜色名称/十六进制值的颜色主题.el文件。

抱歉-在“ 消息”缓冲区中查找的解决方案没有帮助。 M-x load-theme <colortheme>不会将任何内容打印到消息缓冲区中。
Christian Herenz 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.