W latex-mode
przypadku używam TeX-insert-macro
wpisać \input{...}
makro, AUCTeX dogodnie oferuje dokończenie nazw plików, co jest dobre. Wydaje się jednak, że szuka wielu miejsc, aby skompilować listę ukończeń, ponieważ emacs zawiesza się przez prawie minutę na moim biednym małym laptopie.
Czy istnieje sposób na TeX-insert-macro
zaoferowanie głupiego uzupełniania nazw plików?
Przez „głupi” rozumiem ten, który dostajesz, gdy dzwonisz find-file
. Przez większość czasu plik, który chcę wprowadzić, znajduje się tylko o jeden katalog dalej, więc byłoby to więcej niż w porządku.
Jeśli nie jest to możliwe, czy istnieje inny sposób na przyspieszenie?
Zauważyłem, że kiedy wstawiam \include
makro, lista nazw plików jest znacznie krótsza, więc może istnieje sposób na wykorzystanie tej listy również do \input
makra.
cdlatex-insert-filename
pakiet cdlatex. Uważam, że jest to pomocne przy wstawianiu plików graficznych do środowiska postaci.Odpowiedzi:
Masz kilka rozwiązań:
Po pierwsze, nie jest to zmienna dostosowywania tego zachowania:
TeX-arg-input-file-search
.Ten dokument nie jest wystarczająco jasny, ale
nil
wydaje się, że spełnia swoje zadanie.Zmienna ta wpływa na wszystkie funkcje, które wywołują
TeX-arg-input-file
, w tyminput
,include
iusepackage
. W przypadku tego drugiego zachowanie może być nieoczekiwane.Następnie jest bardziej hackerskie rozwiązanie, które powinno działać dla wszystkich funkcji:
TeX-arg-input-file
zawieralocal
flagę dla tego zachowania (ta flaga jest na przykład ustawiona nat
forinclude
).Najwyraźniej możesz zastąpić dowolne inne ustawienie, po prostu dodając kolejny wpis dla polecenia, więc:
Ostatnim rozwiązaniem, jeśli masz długotrwałe sesje emacsa, jest po prostu odpuścić. Wygląda na to, że faza „przeszukiwania plików” buforuje swoje wyniki, dlatego należy ją wywoływać tylko raz na sesję.
źródło
TeX-global-input-files
(zmienna zawierająca wynik wyszukiwania) nie jest lokalnie buforowana, więc wyszukiwanie powinno odbywać się tylko raz na sesję emacs . Być może byłoby to bardziej interesujące, gdyby mogło się to zdarzyć asynchronicznie, jednak zamrożenie ~ 1 minuty jest rzeczywiście zbyt długie.