emacs配置加载主题仅部分加载

时间:2014-06-14 17:14:01

标签: emacs themes elisp

作为我的.emacs文件的最后一行,我有:

(load-theme 'manoj-dark)

当我开始新的emacs窗口时,背景颜色(黑色)等更改生效;但是,我的光标保持黑色(并且不可见)。要解决此问题,我最终还是输入了 M-x load-theme manoj-dark。为什么我的emacs配置中的行没有生效?

2 个答案:

答案 0 :(得分:1)

问题与使用emacsclient(守护程序)有关。关键是使用'after-make-frame-functions挂钩。

(if (daemonp)
    (add-hook 'after-make-frame-functions
        (lambda (frame)
            (select-frame frame)
            (load-theme 'manoj-dark t)))
    (load-theme 'manoj-dark t))

另见https://stackoverflow.com/a/23668935/1542702

答案 1 :(得分:0)

也许使用after-init-hook会让主题加载发生在初始化过程中摆脱了插入符颜色的任何东西之后?

我看到包初始化与这些事情发生冲突的问题(智能模式行和颜色主题,在我的情况下),这对我有帮助。

或许如下所示(注意:未经测试):

(add-hook 'after-init-hook
          (lambda ()
            (load-theme 'manoj-dark)))

在最坏的情况下,您可以使用(run-with-timer ...)(run-with-idle-timer ...)(再次,未经测试)来安排主题加载在初始化结束后几秒钟发生,以模拟您的手动解决方法。不过,这将是一个kludgey。