【问题标题】:How to call a function in a user defined function im Emacs?如何在 Emacs 中调用用户定义函数中的函数?
【发布时间】:2012-02-14 20:35:08
【问题描述】:

我使用 defun 在我的 .emacs 文件中定义一个函数:

(defun myfun ()
   "i am already loaded the color-theme lib"
   (color-theme-initialize)
   (color-theme-darkblue))

那我想在我的mode-hook中使用这个函数:

(add-hook 'python-mode-hook
   '(lambda ()
       (myfun)
       (...)))

但我收到一条错误消息,提示 color-theme-initialize 函数无效。

附:我的 ~/.emacs sn-p

(progn (require 'color-theme)
       (color-theme-initialize))

(progn (setq-default indent-tabs-mode nil)
       (setq-default tab-width 2)
       (setq indent-line-function 'insert-tab))

(add-hook 'emacs-lisp-mode-hook
          '(lambda ()
             (color-theme-resolve)
             (show-paren-mode t)
             (linum-mode t)))

【问题讨论】:

  • 您使用的是哪个版本的 Emacs?我觉得color-theme-initialize是Emacs 24的新特性?
  • 我的 Emacs 是 23.3.1。我从nongnu.org/color-theme 获得颜色主题库,它是定义该函数的库。这个库可以交互地工作。
  • @davidshen84:如果使用的版本真的是这里托管的版本download.savannah.gnu.org/releases/color-theme,我不明白您如何以交互方式调用color-theme-initialize,因为此功能存在。因此,也许另一个版本的 color-theme 已与您的 emacs 捆绑在一起,或者您已经安装了您的包管理器(emacs-goodies 或类似的东西)。请参阅下面的帖子以了解如何找到此功能。

标签: emacs elisp


【解决方案1】:

您需要require(或以其他方式加载)提供color-theme-initialize 的库。我猜(require 'color-theme)

【讨论】:

    【解决方案2】:

    阅读错误,不能调用的不是你的函数,而是 名为color-theme-initialize 的函数。该功能已 前段时间被删除,但在某些旧版本中仍然存在 的color-theme。因此,请检查您的 color-theme 版本,看看是否 有一个名为color-theme-initialize 的函数(与 C-hfcolor-theme-initializeRET)。如果 该功能存在,那么您必须(require 'color-theme), 否则你不需要调用这个函数。

    【讨论】:

    • 没有。我现在正在使用这个函数,在 Emacs 中以交互方式使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 2016-12-21
    • 1970-01-01
    相关资源
    最近更新 更多