当 emacs 运行时,如何找出当前正在使用哪种颜色主题?
答案1
没有当前主题的概念,实际上,可以按顺序应用多个主题来附加地定义活动面集。 最新的 Emacs 版本添加了对主题的支持(请参阅M-x customize-themes
),并且仍然有“一次选择多个主题”选项。
简而言之,当您激活主题时,您并不是切换到该主题,而是将主题中指定的更改应用于它列出的面孔和变量。
所有未明确放置在命名主题中的自定义项实际上都放入了隐藏的用户主题中,因此始终至少有一个活动主题。其他当前启用的主题列在变量中custom-enabled-themes
。
正如文档所述,您的自定义设置优先于主题设置;您看到的某些内容可能会是非主题自定义内容。
答案2
分享一个使用 color-theme-print 来获取我应用的主题的示例。
通过M-x color-theme-print
您将获得有关颜色主题信息的输出,然后找到一个对于不同的颜色主题唯一的典型值,我background-color
为我的 emacs 选择其值为 537182。
打开颜色主题库color-theme-library.el
,然后搜索关键字为“537182”的文件,即可获得主题名称。
虽然这不是一种直接的方法,但它确实有效,希望能有所帮助!
答案3
M-x color-theme-print
可以准确地告诉您哪些字体有效。它不会告诉您已应用了哪些命名的颜色主题,但您应该能够从 init 文件中找出答案。如果没有,我想您一定是使用了应用其自己的颜色主题的模式(我知道证明一般确实如此,而且非常令人恼火。
答案4
要添加 sanityinc 的响应,您可以自己设置,或者将其放在您的 init.el(dotemacs)文件中。
我猜你问这个问题是因为你尝试了几个然后忘了,对吧?我知道我试过,我想知道你是否可以检查一下你的消息缓冲区来查看最后应用的缓冲区。
@sanityinc 也谢谢你的解释。我注意到当我开始连续添加越来越多的主题时,一些区域(如迷你缓冲区)不会改变或会被设置为最后一个主题的值。现在我知道为什么了。