Po długich badaniach w sieci i dokładnym sprawdzeniu ac
dokumentacji z wieloma próbami na moim komputerze w celu zbadania kodu wiersz po wierszu, wymyśliłem to rozwiązanie, które może również yasnippet
działać (opcjonalnie) bez żadnych konfliktów.
umieść to w swoim init.el
lub .emacs
dbając o sekwencję:
(require 'package)
(package-initialize)
;; yasnippet code 'optional', before auto-complete
(require 'yasnippet)
(yas-global-mode 1)
;; auto-complete setup, sequence is important
(require 'auto-complete)
(add-to-list 'ac-modes 'latex-mode) ; beware of using 'LaTeX-mode instead
(require 'ac-math) ; package should be installed first
(defun my-ac-latex-mode () ; add ac-sources for latex
(setq ac-sources
(append '(ac-source-math-unicode
ac-source-math-latex
ac-source-latex-commands)
ac-sources)))
(add-hook 'LaTeX-mode-hook 'my-ac-latex-mode)
(setq ac-math-unicode-in-math-p t)
(ac-flyspell-workaround) ; fixes a known bug of delay due to flyspell (if it is there)
(add-to-list 'ac-modes 'org-mode) ; auto-complete for org-mode (optional)
(require 'auto-complete-config) ; should be after add-to-list 'ac-modes and hooks
(ac-config-default)
(setq ac-auto-start nil) ; if t starts ac at startup automatically
(setq ac-auto-show-menu t)
(global-auto-complete-mode t)
Uwagi:
jak podano w dokumentacji z ac
, dodawanie do ac-modes
i haki powinny być wykonane przed załadunkiem (ac-config-default)
.
Niektórzy sugerowali, aby umieścić kod do gry TAB
kluczem, którego nie potrzebowałem i nie polecam, ponieważ w jakiś sposób zniszczy coś innego później. Widziałem jednak, jak ludzie umieszczali na końcu coś takiego global-auto-complete
:
(ac-set-trigger-key "TAB")
(ac-set-trigger-key "<tab>")
Dopóki nie dodałem (ac-flyspell-workaround)
automatycznego uzupełniania było zbyt wolne, aby myśleć o użyciu go w Auctex, ponieważ używam Flyspell. Ten błąd został również wspomniany w dokumentacji. Dzięki!
Bonus
Z przyjemnością dowiedziałem się z dokumentacji, choć nie bardzo jasne, jak można dodać słownik zdefiniowany przez użytkownika! Próbowałem tego i działałem dobrze.
dodaj te dwie linie tuż za require-auto-complete
linią powyżej:
(add-to-list 'ac-dictionary-directories "~/.emacs.d/.dict") ; make sure this folder exists
(add-to-list 'ac-user-dictionary-files "~/.emacs.d/.dict/custom-dict.txt") ; put any name to your `.txt` file
Teraz w swoim .txt
pliku dodaj swoich ulubionych kandydatów do ukończenia. Ratuj się przed kandydatami o długości poniżej 4 liter, nie są tego warci! Po prostu umieść swoje podobne słowa, oddzielając je wierszem lub RET
.
Przykład zawartości .txt
pliku:
inconsistencies
foobaremaild@foobar.com
do-not-put-your-password-here
long-line-in-any-programming-language-of-your-like
Korzystaj z automatycznego uzupełniania w LaTeX / AUCTeX z Emacsem!