\ Girdi üzerinde TeX-insert-macro hızlandır


10

Gelen latex-modeı kullandığınızda TeX-insert-macrobir yazmak için \input{...} makro, AUCTeX elverişli büyük dosya adı tamamlama sunmaktadır. Ancak, tamamlama listesini derlemek için birçok yerde arama yapıyor gibi görünüyor, çünkü emacs zavallı küçük dizüstü bilgisayarımda neredeyse bir dakika asılı kalıyor.

TeX-insert-macroAptal dosya adı tamamlama sunmanın bir yolu var mı ?
"Aptal" derken, aradığınızda aldığınız anlamına gelir find-file. Çoğu zaman girmek istediğim dosya sadece bir dizin uzakta, bu yüzden daha iyi olurdu.

Bu mümkün değilse, hızlandırmanın başka bir yolu var mı? Makroyu
eklediğimde \includedosya adları listesi çok daha kısa, bu yüzden belki de \input makro için bu listeyi kullanmanın bir yolu var .


Ayrıca cdlatex-insert-filenamecdlatex paketi ile birlikte geliyor. Figür ortamlarına grafik dosyaları eklemek için yararlı buluyorum.
Vamsi

Yanıtlar:


6

Birkaç çözümünüz var:

İlk olarak, bu davranışı özelleştirme değişken vardır: TeX-arg-input-file-search.

Eğer TeX-arg-input-filedosyaları aramalı. Değer t ise, TeX'in arama yolundaki dosyalar aranır ve tamamlanması sağlanır. Dosya adı daha sonra dizin ve uzantı olmadan eklenir. Değer nil ise, dosya adı manuel olarak belirtilebilir ve geçerli arabellek dosyasının dizinine göre bir yolla ve uzantıyla eklenir. Değer ise ask, her TeX-arg-input-fileçağrıldığında kullanılacak yöntem istenir .

Bu dokümantasyon, imho, yeterince açık değil, ama bunu nilyapmak işi yapıyor gibi görünüyor.

(setq TeX-arg-input-file-search nil)

Bu değişken , ve TeX-arg-input-filedahil olmak üzere çağıran tüm işlevleri etkiler . İkincisi için, bu davranış beklenmedik olabilir.inputincludeusepackage

Sonra tüm fonksiyonlar için çalışması gerektiğini bir daha hacky çözüm: TeX-arg-input-fileBir özellikleri local(bu bayrak için örnek kümesi için bu davranış için bayrağı tiçin include).

Görünüşe göre, sadece komut için başka bir giriş ekleyerek diğer ayarları geçersiz kılabilirsiniz, böylece:

(add-hook 'LaTeX-mode-hook 
  (lambda nil 
     (TeX-add-symbols '("input" (TeX-arg-input-file "File" t)))))

Son çözüm, uzun süreli emacs oturumlarınız varsa, sadece gitmesine izin vermektir. Görünüşe göre "arama dosyaları" aşaması sonuçlarını önbelleğe alır, bu nedenle oturum başına yalnızca bir kez çağrılmalıdır.


Müthiş! Biraz hack bekliyordum, sanırım auctex'i hafife aldım.
Malabarba

1
Hmpf, hack'in gerçekten gitmenin yolu olduğu anlaşılıyor, düzenlememi görün. Keskin çözüm ihtiyaçlarınızı daha iyi karşılarsa, cevabı yeniden düzenleyebilmem için lütfen bana söyleyin.
T. Verron

1
Haklısın, istenmeyen ambalaj için. Güncelleme için teşekkürler. Gerçekten sonuçları önbelleğe alır, ancak arabellek başına sadece bir kez olsa bile, ~ 1 dakika gecikme beni rahatsız etmek için yeterlidir.
Malabarba

1
İçeriği yeniden düzenledim. Tekrar koda baktığımda, yanılmışım TeX-global-input-files(aramanın sonucunu içeren değişken) arabellek-yerel değil, bu yüzden arama emacs oturumu başına sadece bir kez gerçekleşmelidir . Belki de zaman uyumsuz bir şekilde gerçekleşebilseydi daha ilginç olurdu, ancak ~ 1 dakika donması gerçekten çok uzun.
T. Verron
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.