2010-11-25 12 views
19

私はemacsで初心者です...私は数日を過ごしましたが、emacsは素晴らしいと思いますが、自動完了をインストールしようとするとエラーが発生します。 ..私はhttp://cx4a.org/software/auto-complete/から設置工事を(私はメイクファイルを使用して)それをインストール...しかし、私は私の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 

を取得します私のフォルダ.emacsは/home/yo/.emacsであり、この中にはac-dic..insideというフォルダがあります。これにはC++モード..lispモードのルビーモード... etc ...などがあります。 ....

私のautocomplete.elは私の.emacsの中にもあります...私は間違っていますか?...ありがとう!!!

答えて

2

.emacs.は通常elispファイルであり、.emacs.dはディレクトリです。あなたはそれらを他の方法で扱っているように見えます。あなたはない.emacs.d~/.emacs

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

を置きます。

質問が不明です。あなたの~/.emacsはどのように見えますか?

EDIT:

それとも、あなたは

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

をしたい私は/home/yo/.emacsで私のフォルダの.emacsをしましたし、この中に私はac-dic..insideというフォルダを持っています。これはC++モードです..lispモードのルビーモード... etc ... etc ... .....

~/.emacsはファイルである必要があります。ディレクトリではありません。

が、私はこのラインを入れたときに、私のemacs.d内

~/.emacs.d/は、私は問題はadd-to-listは、既存のリストに先頭に追加したいということですが、そこにある疑いがあるディレクトリ

4

する必要がありますあなたがそれを呼んでいる時にそのような変数はありません。

あなたは(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 'はこれを行うための一つの方法を提供します。場合によっては、 メジャーモードフックなどの他のフックでもジョブを実行できます。言い換えれば

のようなもの:

(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

でコピーsourcesを再ダウンロードだけでEmacsの24.2.2、オートコンプリートV1 ...これは私のために動作しなかったことを追加したいです。 3.1。 yasnippetの設定は全くありません。 – galactica

+0

+1。また、これら3行の上に(add-to-list 'load-path "〜/ .emacs.d")を追加する必要があります。 – gihanchanuka

0

この問題がありました。これは、他のコンピュータからオートコンプリートファイルをコピーしたためです。それを解決するために、私はその後、私はそれを再コンパイルし、私の.emacs.d cd auto-complete make byte-compile cp *.el *.elc ~/.emacs.d

関連する問題