AucTex ile pdf dokümantasyon dosyalarını görüntülerken bir sorunla karşılaştım. pdf-tools
PDF dosyalarını Emacs içinden görüntülemek için kullanıyorum ve emacsclient -n
varsayılan pdf-görüntüleyicim olarak ayarladım (Debian Linux'ta xdg-mime aracılığıyla). Bu çoğu durumda iyi çalışır, ancak (Tex-documentation-texdoc ...)
Auctex ( C-c ?
) işlevini bozar .
Sorunu tek bir kod satırına daralttım. listings
Paketin belgelerini görüntülemeye çalıştığımda , TeX-documentation-texdoc
bunu aşağıdaki sexp'e dönüştürür:
(shell-command-to-string "texdoc --view listings")
texdoc
sırayla emacsclient
dosyayı gerçekten açmak için aramalar (masaüstümü xdg üzerinden nasıl yapılandırdığımı temel alarak). Ancak, bu noktada, Emacs askıda kalır ve C-g
kontrolü geri almak için ( ) çıkmak gerekir . Bundan sonra yeni pdf açılmaz. Aynı şeyi doğrudan emacsclient aramaya çalışırsanız olur:
(shell-command-to-string "emacsclient -n tmp.pdf")
Her iki komut da komut satırında (yani, emacsclient -n tmp.pdf
ve texdoc --view listings
.
Benim sorum, böyle bir örnekte Emacsli'den nasıl emacsclient diyebilirim? (ve ben sadece pdf dosyasını açabileceğimi biliyorum find-file
; burada bir seçenek değil çünkü dosyayı bulmak için harici bir işlemi (texdoc) çağırmam gerekiyor ve bu işlem daha sonra emacsclient'i çağırıyor).
texdoc --view
ve daha sonra dosyayı açtığında Emacs'a geri dönmek. Ama bence bunu Emacs'tan tek adımda yapmanın bir yolu olmalı mı?
(async-shell-command "emacsclient -n tmp.pdf")
sorunu çözmek?
(async-shell-command "emacsclient -n tmp.pdf")
işe yarıyor ama (async-shell-command "texdoc --view listings")
çalışmıyor. Bu yararlı bir ipucu.
C-u C-c ?
iş? İlk olarak paketle ilgili dokümanların listesini gösterir, ardından görüntüleyiciyi ile açar (call-process "texdoc" nil 0 nil "--just-view" doc)
.
texdoc -M --list listings
dosyayı bulmak için kullanmıyoruzfind-file
?