Em latex-mode
quando eu uso TeX-insert-macro
para escrever uma \input{...}
macro, AUCTeX convenientemente oferece a conclusão filename, que é grande. No entanto, parece procurar em muitos lugares para compilar a lista de conclusão, porque o emacs trava por quase um minuto no meu pobre laptop.
Existe uma maneira de TeX-insert-macro
oferecer a conclusão de nome de arquivo idiota?
Por "burro", quero dizer o que você recebe quando liga find-file
. Na maioria das vezes, o arquivo que eu quero inserir fica a apenas um diretório, o que seria mais do que bom.
Se isso não for possível, existe outra maneira de acelerar isso?
Percebi que quando insiro a \include
macro, a lista de nomes de arquivos é muito menor, então talvez haja uma maneira de usar essa lista \input
também.
cdlatex-insert-filename
que vem com o pacote cdlatex. Acho útil para inserir arquivos gráficos em ambientes de figuras.Respostas:
Você tem algumas soluções:
Primeiro, há uma variável que personaliza este comportamento:
TeX-arg-input-file-search
.Esta parte da documentação não é suficientemente clara, mas configurá-la para
nil
parece fazer o trabalho.Essa variável afeta todas as funções que chamam
TeX-arg-input-file
, incluindoinput
,include
eusepackage
. Para o último, esse comportamento pode ser inesperado.Depois, há uma solução mais hacky que deve funcionar para todas as funções:
TeX-arg-input-file
apresenta umlocal
sinalizador para esse comportamento (este sinalizador é, por exemplo, definido comot
forinclude
).Aparentemente, você pode substituir qualquer outra configuração apenas adicionando outra entrada para o comando, portanto:
Uma última solução, se você tiver sessões duradouras do emacs, é simplesmente deixá-lo ir. Parece que a fase "pesquisando arquivos" armazena em cache seus resultados, portanto deve ser chamada apenas uma vez por sessão.
fonte
TeX-global-input-files
(a variável que contém o resultado da pesquisa) não é local do buffer, portanto, a pesquisa deve ocorrer apenas uma vez por sessão do emacs . Talvez isso seja mais interessante se isso acontecer de forma assíncrona, porém, um congelamento de ~ 1min é realmente muito longo.