2012-02-14 95 views
0

我用defun定義在我的.emacs文件中定義的函數:如何在用戶定義的函數中調用函數im Emacs?

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

然後,我想在我的方式掛接使用此功能:

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

但我得到一個錯誤說color-theme-initialize函數是無效的。

P.S.我的〜/片斷的.emacs

(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))) 
+0

您使用的是哪個版本的Emacs?我認爲color-theme-initialize是Emacs 24的一個新功能? – Paul 2012-02-14 08:12:36

+0

我的Emacs是23.3.1。我從http://www.nongnu.org/color-theme/獲取color-theme lib,並且它是lib定義的函數。這個lib以交互方式正常工作。 – davidshen84 2012-02-14 09:05:26

+0

@ davidshen84:如果使用的版本真的是這裏託管的版本http://download.savannah.gnu.org/releases/color-theme/我不知道如何以交互方式調用'color-theme-initialize',因爲這個函數*不存在。所以也許另一個'color-theme'版本已經與emacs捆綁在一起,或者你已經安裝了包管理器('emacs-goodies'或類似的東西)。看到我的帖子下面知道如何找到這個功能。 – Daimrod 2012-02-14 12:19:56

回答

2

你需要require(或其它負載),它提供color-theme-initialize庫。我在猜測(require 'color-theme)

0

閱讀錯誤,這不是你的函數,不能被調用,但 函數名爲color-theme-initialize。此功能已被刪除,但仍可以在color-theme的某個舊版本 中刪除。因此,請檢查您的color-theme版本,看看是否 有一個名爲color-theme-initialize函數( C-H˚Fcolor-theme-initializeRET)。如果 函數存在,那麼你必須(require 'color-theme), 否則你不需要調用這個函數。

+0

不,我現在正在Emacs中交互使用這個功能。 – davidshen84 2012-02-14 09:07:20

相關問題