Di latex-mode
saat saya menggunakan TeX-insert-macro
mengetik \input{...}
makro, AUCTeX nyaman menawarkan nama file selesai, yang besar. Namun, tampaknya mencari banyak tempat untuk mengkompilasi daftar penyelesaian, karena emacs hang selama hampir satu menit di laptop kecil saya yang malang.
Apakah ada cara untuk TeX-insert-macro
menawarkan penyelesaian nama file bodoh?
Dengan "bodoh", maksud saya yang Anda dapatkan saat menelepon find-file
. Sebagian besar waktu file yang ingin saya input hanya berjarak satu direktori, jadi itu akan lebih baik.
Jika itu tidak mungkin, apakah ada cara lain untuk mempercepatnya?
Saya perhatikan ketika saya memasukkan \include
makro daftar nama file jauh lebih pendek, jadi mungkin ada cara untuk menggunakan daftar itu untuk \input
makro juga.
cdlatex-insert-filename
yang dilengkapi dengan paket cdlatex. Saya merasa sangat membantu untuk menyisipkan file grafik ke lingkungan gambar.Jawaban:
Anda memiliki beberapa solusi:
Pertama, ada variabel menyesuaikan perilaku ini:
TeX-arg-input-file-search
.Bagian dari dokumentasi ini, imho, tidak cukup jelas, tetapi mengaturnya
nil
sepertinya melakukan pekerjaan itu.Variabel ini memengaruhi semua fungsi yang memanggil
TeX-arg-input-file
, termasukinput
,include
danusepackage
. Untuk yang terakhir, perilaku ini mungkin tidak terduga.Lalu ada solusi yang lebih rumit yang harus bekerja untuk semua fungsi:
TeX-arg-input-file
fiturlocal
bendera untuk perilaku ini (bendera ini misalnya diatur ket
untukinclude
).Tampaknya, Anda dapat mengganti pengaturan lain dengan hanya menambahkan entri lain untuk perintah, jadi:
Solusi terakhir, jika Anda memiliki sesi emac yang tahan lama, adalah membiarkannya begitu saja. Tampaknya fase "mencari file" menyimpan hasilnya, sehingga harus dipanggil hanya sekali per sesi.
sumber
TeX-global-input-files
(variabel yang berisi hasil pencarian) bukan buffer-local, jadi pencarian harus terjadi hanya sekali per sesi emacs . Mungkin ini akan lebih menarik jika itu bisa terjadi secara asinkron, meskipun, pembekuan ~ 1 menit memang terlalu lama.