In latex-mode
wenn ich TeX-insert-macro
einen geben \input{...}
Makro bietet auctex bequem Vervollständigung von Dateinamen, das ist toll. Es scheint jedoch viele Orte zu durchsuchen, um die Abschlussliste zusammenzustellen, da Emacs fast eine Minute lang an meinem armen kleinen Laptop hängen.
Gibt es eine Möglichkeit TeX-insert-macro
, eine dumme Dateinamenvervollständigung anzubieten?
Mit "dumm" meine ich die, die Sie erhalten, wenn Sie anrufen find-file
. Die meiste Zeit ist die Datei, die ich eingeben möchte, nur ein Verzeichnis entfernt, das wäre also mehr als in Ordnung.
Wenn dies nicht möglich ist, gibt es eine andere Möglichkeit, dies zu beschleunigen?
Beim Einfügen des \include
Makros ist mir aufgefallen, dass die Liste der Dateinamen viel kürzer ist. Vielleicht gibt es eine Möglichkeit, diese Liste auch für das \input
Makro zu verwenden.
cdlatex-insert-filename
das mit cdlatex Paket kommt. Ich finde es hilfreich, um Grafikdateien in Figurenumgebungen einzufügen.Antworten:
Sie haben einige Lösungen:
Erstens gibt es eine Variable, die dieses Verhalten anpasst :
TeX-arg-input-file-search
.Diese Dokumentation ist imho nicht klar genug, aber die Einstellung
nil
scheint den Job zu erledigen.Diese Variable wirkt sich auf alle Funktionen , die aufrufen
TeX-arg-input-file
, einschließlichinput
,include
undusepackage
. Für letztere kann dieses Verhalten unerwartet sein.Dann gibt es eine hackigere Lösung, die für alle Funktionen funktionieren sollte: Verfügt
TeX-arg-input-file
über einlocal
Flag für dieses Verhalten (dieses Flag ist beispielsweise auft
für gesetztinclude
).Anscheinend können Sie jede andere Einstellung überschreiben, indem Sie einfach einen weiteren Eintrag für den Befehl hinzufügen.
Eine letzte Lösung, wenn Sie lang anhaltende Emacs-Sitzungen haben, besteht darin, sie einfach loszulassen. Es scheint, dass die Phase "Dateien durchsuchen" die Ergebnisse zwischenspeichert, daher sollte sie nur einmal pro Sitzung aufgerufen werden.
quelle
TeX-global-input-files
(die Variable, die das Ergebnis der Suche enthält), ist nicht pufferlokal, daher sollte die Suche nur einmal pro Emacs- Sitzung erfolgen . Vielleicht wäre dies interessanter, wenn es asynchron passieren könnte, aber ein Einfrieren von ~ 1 Minute ist in der Tat zu lang.