Определение функции символа недействительно: global-auto-complete-mode

Я использую GNU Emacs 24.4.1 (x86_64-apple-darwin14.0.0), я установил автозаполнение из Melpa, и в init.el есть следующая строка:

(global-auto-complete-mode 1)

Когда я открываю emacs, выдается предупреждение:

Warning (initialization): An error occurred while loading `/Users/lita/.emacs.d/init.elc':

Symbol's function definition is void: global-auto-complete-mode

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.

И режим автозаполнения не был запущен. После того, как я изменил строку в init.el в:

(eval-after-load 'auto-complete (global-auto-complete-mode 1))

Это все еще придумало то же самое предупреждение. Но если я `eval-buffer, он включает автозаполнение.

В чем проблема с этим??

1 ответ

Решение

В вашем файле инициализации, вы должны позвонить (package-initialize) прежде чем ссылаться на пакеты.

Кроме того, у вас есть опечатка в вашем eval-after-load заявление. Вам нужно процитировать форму, в противном случае она оценивается немедленно, поэтому вы получаете предупреждение. Другими словами:

(eval-after-load 'auto-complete '(global-auto-complete-mode 1))

Кроме того, вы можете использовать новый макрос with-eval-after-load,

Другие вопросы по тегам