尝试在emacs中安装自动完成时出错

尝试在emacs中安装自动完成时出错,emacs,autocomplete,lisp,Emacs,Autocomplete,Lisp,我是emacs的新手…我有几天的时间,我觉得emacs很棒,但是当我尝试安装auto complete时,我遇到了一个错误…我从安装工作中安装它(我使用makefile)…但是当我把这行代码放在我的emacs.d中时 (add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict") (require 'auto-complete-config) (ac-config-default) 我得到这个错误 Warning (initializ

我是emacs的新手…我有几天的时间,我觉得emacs很棒,但是当我尝试安装auto complete时,我遇到了一个错误…我从安装工作中安装它(我使用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 /y//emacs,在这个文件夹里有AC DIC……里面有C++模式…LISP模式红宝石模式等等……等等……/P>
我的autocomplete.el也在我的.emacs中…我做错了什么??…谢谢

.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 /y//emacs,在这个文件夹里有AC DIC……里面有C++模式…LISP模式红宝石模式等等……等等……/P>
~/.emacs
应该是一个文件。不是目录

但是当我把这行代码放进我的emacs.d


~/.emacs.d/
应该是一个目录

我怀疑问题在于
添加到列表
想要在现有列表前添加,但在调用它时没有这样的变量

您可以使用
(setq'ac dictionary directories“~/.emacs.d/ac dict”)
,或者按照“添加到列表的帮助”中的建议操作:

如果要对未定义的变量使用
add to list'
在加载某个包之前,您应该将调用置于
add to list' 进入一个钩子函数,该函数将仅在加载包后运行。 `“加载后评估”提供了一种方法。在某些情况下 其他钩子,比如主模式钩子,可以完成这项工作

换句话说,类似于:

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

或者,最后,您可以在
require
之后设置变量,但我不确定这与auto-complete的初始化如何交互。

ac字典目录在auto-complete.el中定义,因此显然emacs找不到它。因此,只需更改语句的顺序:

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

现在,它应该可以工作了。

我遇到了这个问题。这是因为我从另一台计算机复制了自动完成的文件。为了解决这个问题,我重新下载,然后重新编译并复制到.emacs.d中

cd自动完成
使字节编译
cp*.el*.elc~/.emacs.d

我只想补充一点,这对我不起作用。。。Emacs 24.2.2,自动完成v1.3.1。而且根本没有yasnippet的配置。+1。此外,我还需要在这三行之上添加(添加到列表“加载路径”~/.emacs.d”)。