当我尝试安装auto时出现错误
我是emacs的新手...我已经有几天了,我认为emacs很棒,但当我尝试安装自动完成时出现错误...我从http://cx4a.org/software/安装它自动完成/安装工程(我使用makefile)...但是当我把这些行放在我的emacs.d中
(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 ..在这里有c ++模式.. lisp模式ruby模式... etc ..等等...等等.....
我的autocomplete.el也在我的.emacs里面......我在做什么错误......谢谢!!!
ac-dictionary-directories
是在auto-complete.el中定义的,所以显然emacs不会找到它。 所以简单地改变语句的顺序:
(require 'auto-complete-config)
(ac-config-default)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict")
现在,它应该工作。
我怀疑问题在于add-to-list
想要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
使用add-to-list' on a variable that is not defined until a certain package is loaded, you should put the call to
add-to-list'放到一个钩子函数中,该函数只有在加载包后才能运行。 `加载后评估'提供了一种方法来做到这一点。 在某些情况下,其他钩子(如主要模式钩子)可以完成这项工作。
换句话说就是:
(eval-after-load 'auto-complete-config
'(add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict"))
或者,最后,你可以在require
之后设置变量,但我不确定它是如何与自动完成初始化交互的。
.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 ..在这里有c ++模式.. lisp模式ruby模式... etc ..等等...等等.....
~/.emacs
应该是一个文件。 不是目录。
但是当我把这些线放入我的emacs.d中时
~/.emacs.d/
应该是一个目录