【问题标题】:emacsclient not evaluating color-theme?emacsclient 不评估颜色主题?
【发布时间】:2011-03-24 05:50:18
【问题描述】:

当我启动时,我启动 emacs --daemon 它评估我的.emacs,但有一个例外:

(add-to-list 'load-path "~/.elisp/zenburn-emacs") ;修复加载问题

(需要'zenburn)

;;;颜色主题 - zenburn?

(add-to-list 'load-path "~/.elisp/color-theme")

(需要'颜色主题)

(加载后评估“颜色主题” '(预测 (颜色主题初始化)))

我知道加载路径的东西可以工作,因为一旦我使用emacsclient -nw 启动 emacsclient,M-x zenburn 就可以很好地加载配色方案。

有人知道(eval-after-load [snip - see above]) 是怎么回事吗?

这是一个错误吗?

系统信息:

GNU Emacs 23.2.1

安装在debian sid on2.6.32-5-amd64 版本:23.2+1-7

文件名:pool/main/e/emacs23/emacs23_23.2+1-7_amd64.deb

【问题讨论】:

    标签: emacs lisp elisp debian emacsclient


    【解决方案1】:

    来自 Zenburn for Emacs 的当前维护者的一个提示(你真的):

    (add-to-list 'load-path "~/.elisp/color-theme")
    (add-to-list 'load-path "~/.elisp/zenburn-emacs")
    (require 'zenburn)
    (zenburn)
    

    您不需要颜色主题,因为 zenburn 在内部需要它。但是,您确实需要在需要 zenburn 之后调用 zenburn 函数。

    当您键入 M-x zenburn 时,您实际上是在调用 (zenburn) 函数,这就是为什么主题会在此时应用而不是在启动时应用的原因。

    【讨论】:

      【解决方案2】:

      你真的没有说什么不起作用吗?

      (require 'zenburn) 不足以启动主题。
      您还需要致电(color-theme-zenburn)(或它的别名(zenburn),就像您以交互方式进行的那样)。

      【讨论】:

      • 我认为 Phils 是对的:您可以使用 (zenburn) 而不是您的 (eval-after-load ...) 行。我不认为 color-theme-initialize 实际上会改变颜色主题,它只是加载库。
      【解决方案3】:

      FWIW,这是我在 .emacs 中加载 zenburn 的方式:

      (require 'zenburn)
      (zenburn)
      

      通过 emacsclient 加载正常。

      【讨论】:

      • zenburn 是函数 color-theme-zenburn 的较短别名。 color-theme 和 setq color-theme-is-global 的明确要求是多余的。
      【解决方案4】:

      评论太长了:

      我的.emacs 文件中有以下行:

      (setq default-frame-alist '((font . "Inconsolata-20") (tool-bar-lines . 0) (menu-bar-lines . 0)))
      

      如果我举个例子

      (color-theme-taylor)
      

      在这一行之后它可以工作,如果我把它放在这一行之前,它就不会。

      (require 'color-theme)
      (color-theme-initialize)    
      
      (setq default-frame-alist '((font . "Inconsolata-20") (tool-bar-lines . 0) (menu-bar-lines . 0)))
      
      (color-theme-taylor)
      

      有效...也许您的问题可能有类似的原因...

      【讨论】:

        【解决方案5】:

        (progn (require 'color-theme) (color-theme-initialize)) 之类的东西应该可以工作。要查看(eval-after-load "color-theme" '(progn (color-theme-initialize))) 做了它应该做的事情,请检查color-theme-initialize 是否附加到after-load-alistdescribe-variableC-h v)。如果不是,那可能是一个错误。

        【讨论】:

          猜你喜欢
          • 2017-11-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-17
          • 1970-01-01
          • 1970-01-01
          • 2016-03-27
          相关资源
          最近更新 更多