En latex-mode
cuando utilizo TeX-insert-macro
para escribir una \input{...}
macro, auctex convenientemente ofrece nombres de archivos, que es grande. Sin embargo, parece buscar muchos lugares para compilar la lista de finalización, porque emacs se cuelga durante casi un minuto en mi pobre y pequeña computadora portátil.
¿Hay alguna forma de TeX-insert-macro
ofrecer una finalización de nombre de archivo tonto?
Por "tonto", me refiero al que obtienes cuando llamas find-file
. La mayoría de las veces el archivo que quiero ingresar está a solo un directorio de distancia, por lo que estaría más que bien.
Si eso no es posible, ¿hay otra forma de acelerarlo?
Noté que cuando inserto la \include
macro, la lista de nombres de archivo es mucho más corta, por lo que tal vez también haya una manera de usar esa lista para la \input
macro.
cdlatex-insert-filename
que viene con el paquete cdlatex. Me resulta útil para insertar archivos gráficos en entornos de figuras.Respuestas:
Tienes algunas soluciones:
En primer lugar, hay una variable personalización de este comportamiento:
TeX-arg-input-file-search
.Esta documentación es, en mi opinión, bastante poco clara, pero configurarla
nil
parece hacer el trabajo.Esta variable afecta a todas las funciones que llaman
TeX-arg-input-file
, incluidosinput
,include
yusepackage
. Para este último, este comportamiento puede ser inesperado.Luego hay una solución más hacky que debería funcionar para todas las funciones:
TeX-arg-input-file
presenta unlocal
indicador para este comportamiento (este indicador está configurado, por ejemplo,t
parainclude
).Aparentemente, puede anular cualquier otra configuración simplemente agregando otra entrada para el comando, entonces:
Una última solución, si tiene sesiones de emacs duraderas, es simplemente dejarlo ir. Parece que la fase de "búsqueda de archivos" almacena en caché sus resultados, por lo que debería llamarse solo una vez por sesión.
fuente
TeX-global-input-files
(la variable que contiene el resultado de la búsqueda) no es local en el búfer, por lo que la búsqueda debería ocurrir solo una vez por sesión de emacs . Tal vez esto sería más interesante si pudiera ocurrir de forma asíncrona, sin embargo, una congelación de ~ 1 minuto es realmente demasiado larga.