2010-11-25 53 views
19

我是emacs的新手...我有幾天的時間,我認爲emacs很棒,但是當我嘗試安裝自動完成時出現錯誤。 ..我從http://cx4a.org/software/auto-complete/安裝工程安裝(我用的makefile文件)...但是當我把這個線我emacs.d內當我嘗試在emacs中安裝自動完成時出現錯誤

(add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict") 
(require 'auto-complete-config) 
(ac-config-default) 

我得到這個錯誤

Warning (initialization): An error occurred while loading `/home/yo/.emacs': 

Symbol's value as variable is void: ac-dictionary-directories 

To ensure normal operation, you should investigate and remove the 
cause of the error in your initialization file. Start Emacs with 
the `--debug-init' option to view a complete error backtrace 

我ve我的文件夾.emacs在/home/yo/.emacs裏面,我有文件夾ac-dic..inside這裏有C++模式.. lisp模式ruby模式... etc .. etc ......等等。 ....

我的autocomplete.el也在我的.emacs裏面...我做錯了什麼??謝謝!!!

回答

2

.emacs.通常是一個elisp文件,.emacs.d是目錄。看起來你正在以相反的方式對待他們。你把

(add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict") 
(require 'auto-complete-config) 
(ac-config-default) 

~/.emacs,不.emacs.d

或者,您的問題不清楚。你的~/.emacs是什麼樣的?

編輯:

或者,你想幹什麼

(add-to-list 'load-path "~/.emacs.d/ac-dict") 
(require 'auto-complete-config) 
(ac-config-default) 

,而不是

(add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict") 
(require 'auto-complete-config) 
(ac-config-default) 

我有我的文件夾的.emacs在/home/yo/.emacs和在這裏我有文件夾ac-dic..inside這有C++模式.. lisp模式ruby模式... etc ..等......等等.....

~/.emacs應該是一個文件。不是目錄。

但是當我把這個線我emacs.d內

~/.emacs.d/應該是一個目錄

4

我懷疑的問題是,add-to-list要預先考慮到現有的名單,但有在你打電話時沒有這樣的變量。

你可以使用(setq 'ac-dictionary-directories "~/.emacs.d/ac-dict")代替或照做的幫助中添加到列表:

如果你想使用add-to-list' on a variable that is not defined until a certain package is loaded, you should put the call to添加到列表」 到將要運行的鉤子函數只有在加載包裝後。 「加載後評估」提供了一種方法來執行此操作。在某些情況下,其他鉤子(如主要模式鉤子)可以完成這項工作。

換句話說是這樣的:

(eval-after-load 'auto-complete-config 
    '(add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict")) 

或者,最後,你可以只設置變量的require後,但我不知道如何與自動完成的初始化交互。

27

ac-dictionary-directories是在auto-complete.el中定義的,所以很明顯emacs不會找到它。所以簡單地改變語句的順序:

(require 'auto-complete-config) 
(ac-config-default) 
(add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict") 

現在,它應該工作。

+1

只是想補充一點,這並沒有爲我工作... Emacs的24.2.2,自動完成V1。 3.1。並且完全沒有配置yasnippet。 – galactica 2014-09-09 21:52:00

0

我有這個問題。這是因爲我從其他計算機復​​制了自動完成文件。爲了解決這個問題,我重新下載sources然後我重新編譯,並在我的.emacs.d複製 cd auto-complete make byte-compile cp *.el *.elc ~/.emacs.d

相關問題