Я хочу auto-complete
(AC) работать, когда я нахожусь в AucTeX
режиме. Я получаю все пакеты от MELPA путем установки пакета.
Это мой соответствующий код в init.el
файле:
(require 'package)
(package-initialize)
(require 'auto-complete-config)
(ac-config-default)
(global-auto-complete-mode t)
как вы можете видеть, хотя я устанавливаю ac
глобально, он не появляется в AucTeX
. Тем не менее, следуя инструкциям в этом emacswiki , ac
режим отображался в строке состояния, AucTeX
но не работал, без автозаполнения при наборе символов.
Заметки
Emacs 24.4 под Windows 7 32bit и пакеты были обновлены.
latex
auctex
auto-complete-mode
докторская степень
источник
источник
ac
преуспеть сauctex
. Я упомянул,yasnippet
потому что я также использую это, чтобы иметь некоторые пользовательские фрагменты в латексе. Поэтому, пока вы не предоставите свой код, я не могу сказать,yas
будет ли мешатьac
.yasnippet
работают ли autocomplete и AUCTeX вместе, как предложено @giordano. Если да, то проблема с включениемyasnippet
. Если это так, это, вероятно, ваша настройка автозаполнения.yasnippet
я удалил его из моего init.el. Проблема, скорее всего, в настройкеauctex
иac
.Ответы:
После долгих исследований в интернете и тщательного изучения
ac
документации на моей машине, чтобы построчно проверять код, я пришел к этому решению, которое также можетyasnippet
работать (опционально) без каких-либо конфликтов.Поместите это в вашу последовательность
init.el
или.emacs
позаботьтесь о последовательности:Примечания:
как указано в документации о
ac
, добавление кac-modes
и крюкам должны быть сделаны перед загрузкой(ac-config-default)
.Некоторые предлагали использовать какой-то код для игры с
TAB
ключом, который мне не нужен, и не рекомендуют, так как это позже как-то разрушит что-то еще. Тем не менее, я видел, как люди ставили что-то вроде этого в конце как раз передglobal-auto-complete
:Пока я не добавил
(ac-flyspell-workaround)
автозаполнение, было слишком медленно думать об его использовании в Auctex, так как я использую flyspell. Эта ошибка также упоминалась в документации. Спасибо!Бонус
Я был рад узнать из документации, хотя не очень ясно, как, что можно добавить пользовательский словарь (и)! Я попробовал это и работал хорошо.
добавьте эти две строки сразу после
require-auto-complete
строки выше:Теперь в вашем
.txt
файле добавьте ваших любимых кандидатов для завершения. Спасите себя от кандидатов длиной менее 4 букв, они того не стоят! Проще говоря, слова, которые вам нравятся, разделяются переводом строки илиRET
.Пример содержимого в
.txt
файле:Наслаждайтесь автозаполнением в LaTeX / AUCTeX с Emacs!
источник
elisp
функция, которая.txt
бросала бы любое помеченное слово в буфер во время записи в эту диктовку на лету и добавляла его без особых усилий!Как я уже сказал в моем комментарии выше, пакет
auto-complete-auctex
также может решить проблему. Я проверил оба, и они оба работают хорошо. Было бы неплохо сравнить решение @doctorate и вышеприведенного пакета, сделав скриншоты. Если я напишу$\sig$
, код докторантуры приведу примерно таки что из пакета
auto-complete-auctex
дает что-то вроде этогоДобавлено: Я должен упомянуть, что решение @giordano также работает, вот снимок экрана:
источник
auto-complete
должен быть основной пакет, хотяauto-complete-auctex
может иметь некоторые дополнительные функции. Я попробую и сообщу при необходимости. СпасибоСледующее - моя
auto-complete
связанная конфигурация:Как видите, для AUCTeX нет ничего особенного, это стандартная конфигурация
auto-complete
. Конфигурация дляac-math
описана на его веб-сайте. Если вы не используетеac-math
, единственная разумная разница с вашей конфигурацией(add-to-list 'ac-modes 'latex-mode)
.источник
package-initialize
. Возможно, вам это не понравится, но, пожалуйста, не рекомендуйтеload-path
в своих ответах плохие практики, такие как ручное управление.package-initialize
позже в любом случае.