Nachdem ich lange im Internet recherchiert und die ac
Dokumentation sorgfältig geprüft und viele Versuche auf meinem Computer durchgeführt hatte, um den Code Zeile für Zeile zu überprüfen, kam ich zu dieser Lösung, die yasnippet
auch ohne Probleme funktionieren kann (optioinal).
Setzen Sie dies in Ihre init.el
oder .emacs
kümmern Sie sich um die Reihenfolge:
(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)
Hinweise:
Wie in der Dokumentation von erwähnt ac
, sollten das Hinzufügen ac-modes
und Einhängen vor dem Laden erfolgen (ac-config-default)
.
Einige schlugen vor, Code zum Spielen mit dem TAB
Schlüssel zu verwenden, den ich nicht brauchte, und empfehlen ihn nicht, da er später irgendwie etwas anderes zerstören würde. Ich habe jedoch gesehen, wie Leute am Ende kurz zuvor so etwas geschrieben haben global-auto-complete
:
(ac-set-trigger-key "TAB")
(ac-set-trigger-key "<tab>")
Bis ich die (ac-flyspell-workaround)
automatische Vervollständigung hinzufügte, war es zu langsam, daran zu denken, sie in Auctex zu verwenden, da ich Flyspell verwende. Dieser Fehler wurde auch in der Dokumentation erwähnt. Vielen Dank!
Bonus
Ich war froh aus der Dokumentation zu wissen, obwohl nicht sehr klar, wie man ein benutzerdefiniertes Wörterbuch hinzufügen kann! Ich habe es versucht und gut gearbeitet.
Fügen Sie diese beiden Zeilen direkt nach der require-auto-complete
obigen Zeile hinzu:
(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
Fügen Sie nun in Ihrer .txt
Datei Ihre Lieblingskandidaten zur Vervollständigung hinzu. Sparen Sie sich vor Kandidaten, die weniger als 4 Buchstaben lang sind, sie sind es nicht wert! Setzen Sie einfach Wörter Ihrer Art durch einen Zeilenvorschub oder getrennt RET
.
Beispiel für den Inhalt der .txt
Datei:
inconsistencies
foobaremaild@foobar.com
do-not-put-your-password-here
long-line-in-any-programming-language-of-your-like
Genießen Sie die automatische Vervollständigung in LaTeX / AUCTeX mit Emacs!