【问题标题】:Emacs: how to get the default theme?Emacs:如何获得默认主题?
【发布时间】:2023-03-10 23:30:01
【问题描述】:

我一直在使用默认主题,大约有 10 个面孔通过 custom-set-faces 一会儿。但有时我想 尝试几个自定义主题。问题是 他们设置了超过 10 个面孔,没有办法回到我的 加载自定义主题后之前的设置。

澄清一下:

  1. 我通过自定义默认主题 (load "faces") 启动 Emacs。一切都很好。
  2. load-themewombat。一切都很好。
  3. (load "faces")再次:一切都乱七八糟,因为很多面孔仍然存在 处于wombat 状态。

有时不同的主题彼此不兼容, 例如第二个比第一个设置更多的面孔,当 回到第一个,一切都变得一团糟。

所以我想知道是否有类似 load-theme default 的东西 会将所有可以想象的面孔重置为默认的emacs -q 状态。

然后我可以用我的 10 个自定义面孔对其进行调整并拥有自己的面孔 不会有我描述的问题的主题。

【问题讨论】:

    标签: emacs elisp


    【解决方案1】:

    看来disable-theme 做了你想做的事。

    更新

    这是获取“默认主题模板”的一种方法

    1) 禁用任何其他主题(使用disable-theme

    2)调用命令customize-create-theme会打开一个自定义界面,里面列出了所有的默认面,你可以自定义和创建自己的主题

    如果使用主题名称调用customize-create-theme,它将列出该主题设置的所有面孔。

    【讨论】:

    • 一个很好的解决方法,谢谢。但是有没有可能得到一个默认的主题模板?
    • 嗨@abo-abo,你试过customize-create-theme这个命令吗?如果在加载默认主题(即未加载主题)的情况下调用该命令,它会列出所有默认面,您可以自定义和创建自己的主题。
    • 谢谢,我从customize-themes 尝试过类似的方法,但这个更好。尽管如此,自定义主题设置的面孔比这更多。
    【解决方案2】:

    其他人提到了尝试解决该问题的方法。我只想指出,到目前为止,Emacs 自定义主题存在一个固有问题,即尝试“撤消”它们并返回到以前的,可能是自定义的,但不是自定义的——主题状态。

    特别是如果您想以非交互方式执行此操作,例如,在允许用户尝试主题但也允许他们取消(例如C-g)并返回到主题之前的先前状态的命令代码中。

    您可以禁用会话中曾经启用的所有主题,但这不会将您的会话返回到主题之前的状态被启用。实际上,禁用主题仅与其他主题相关,与未自定义状态或(尤其)与其他非主题自定义无关。

    另见:

    (哦,还有 FWIW,color themes,大概是 Emacs 自定义主题的灵感来源,没有这个问题。它们适用于所有 Emacs 版本,包括最新版本。它们但是,与自定义主题有不同的限制。自定义主题的实现最好是固定/完成,因此自定义主题可以完全取代颜色主题。)

    【讨论】:

    • 事实上,我投了赞成票。无法接受,因为问题尚未解决。
    【解决方案3】:

    我的 emacs 配置中有这样的东西来更改主题:

    (defun zenburn ()
    "Activate zenburn theme."
    (interactive)
    (setq dark-theme t)
    ;; disable other themes before setting this theme
    (disable-theme 'soft-stone)
    (disable-theme 'leuven)
    (load-theme 'zenburn t))
    

    【讨论】:

      【解决方案4】:

      这就像原来的一年后,但刚刚通过M-x customize-face解决了类似的问题,然后输入default

      Customize Face: Default 将为您提供一个图形用户界面,其中包含字体、前景色和背景色等选项。

      转到标记为Operate on all settings in this buffer: 的顶部区域并单击Revert 并在下拉列表中单击Erase Customizations

      最后,重新加载/评估您的 .emacsinit.el 文件。

      这对我有用,而尝试手动禁用(几乎所有)主题并在 .el 文件周围浮动却没有。

      【讨论】:

        【解决方案5】:

        在这里添加另一个答案,因为您不一定知道当前主题:

        这会删除所有自定义主题。

        (dolist (theme custom-enabled-themes)
          (disable-theme theme))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-04-13
          • 2011-12-02
          • 2014-09-10
          • 2012-04-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多