Ich möchte, dass auto-complete
(ac) funktioniert, wenn ich mich im AucTeX
Modus befinde. Ich erhalte alle Pakete von MELPA per Paketinstallation.
Dies ist mein relevanter Code in der init.el
Datei:
(require 'package)
(package-initialize)
(require 'auto-complete-config)
(ac-config-default)
(global-auto-complete-mode t)
Wie Sie sehen können, wird ac
es nicht angezeigt , obwohl ich es global einstelle AucTeX
. Durch Befolgen der Anweisungen in diesem Emacswiki wurde der ac
Modus in der Statusleiste angezeigt, AucTeX
jedoch nicht funktionsfähig, keine automatische Vervollständigung durch Eingabe von Zeichen.
Hinweise
Emacs 24.4 unter Windows 7 32bit und Pakete wurden aktualisiert.
latex
auctex
auto-complete-mode
Promotion
quelle
quelle
ac
ich gut damit umgehen könnenauctex
. Ich erwähnte,yasnippet
weil ich es auch benutze, um einige benutzerdefinierte Schnipsel in Latex zu haben. Bis Sie Ihren Code angeben, kann ich nicht sagen, ob diesyas
im Weg stehtac
.yasnippet
, ob Autocomplete und AUCTeX zusammenarbeiten, wie von @giordano vorgeschlagen. Wenn ja, dann liegt das Problem bei der Aufnahme vonyasnippet
. Wenn ja, ist es wahrscheinlich Ihr Autocomplete-Setup.yasnippet
ich es von meiner init.el entfernt habe. Das Problem liegt höchstwahrscheinlich in der Einrichtung vonauctex
undac
.Antworten:
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, dieyasnippet
auch ohne Probleme funktionieren kann (optioinal).Setzen Sie dies in Ihre
init.el
oder.emacs
kümmern Sie sich um die Reihenfolge:Hinweise:
Wie in der Dokumentation von erwähnt
ac
, sollten das Hinzufügenac-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 habenglobal-auto-complete
: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: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 getrenntRET
.Beispiel für den Inhalt der
.txt
Datei:Genießen Sie die automatische Vervollständigung in LaTeX / AUCTeX mit Emacs!
quelle
elisp
Funktion gäbe, ein markiertes Wort in einen Puffer zu werfen, während man es.txt
spontan in dieses Diktat schreibt und es ohne großen Aufwand anfügt!Wie ich in meinem obigen Kommentar sagte, kann das Paket
auto-complete-auctex
auch das Problem lösen. Ich habe beide getestet und beide funktionieren gut. Es wäre schön, die Lösung von @doctorate und das obige Paket mit Screenshots zu vergleichen . Wenn ich schreibe$\sig$
, gibt der Promotionscode so etwasund das des Pakets
auto-complete-auctex
gibt so etwasHinzugefügt: Ich sollte erwähnen, dass die Lösung von @giordano auch funktioniert, hier ein Screenshot:
quelle
auto-complete
sollte das Hauptpaket sein, währendauto-complete-auctex
es einige zusätzliche Funktionen haben könnte. Ich werde es versuchen und gegebenenfalls berichten. DankeDas Folgende ist mein
auto-complete
verwandte Konfiguration:Wie Sie sehen, gibt es für AUCTeX nichts Besonderes, es ist die Standardkonfiguration von
auto-complete
. Die Konfiguration fürac-math
ist auf der Website beschrieben. Wenn Sie nicht verwendenac-math
, ist der einzige sinnvolle Unterschied zu Ihrer Konfiguration(add-to-list 'ac-modes 'latex-mode)
.quelle
package-initialize
. Sie mögen es vielleicht nicht, aber bitte empfehlen Sieload-path
in Ihren Antworten keine schlechten Praktiken wie manuelle Verwaltung.package-initialize
später trotzdem zu verbessern .