ฉันพบปัญหาในการดูไฟล์เอกสาร PDF ด้วย AucTex ฉันใช้pdf-tools
เพื่อดูไฟล์ PDF จากภายใน Emacs และฉันตั้งemacsclient -n
เป็นค่าเริ่มต้น pdf-viewer ของฉัน (ผ่าน xdg-mime บน Debian Linux) สิ่งนี้ใช้ได้ดีในสถานการณ์ส่วนใหญ่ แต่มันก็แบ่งการ(Tex-documentation-texdoc ...)
ทำงานของ Auctex ( C-c ?
)
ฉันได้ทำให้ปัญหาแคบลงเป็นรหัสบรรทัดเดียว เมื่อฉันพยายามที่จะดูเอกสารประกอบของlistings
แพคเกจTeX-documentation-texdoc
เปลี่ยนสิ่งนี้เป็น sexp ต่อไปนี้:
(shell-command-to-string "texdoc --view listings")
texdoc
ในทางกลับกันเรียกร้องemacsclient
ให้เปิดไฟล์ (ขึ้นอยู่กับวิธีที่ฉันกำหนดค่าเดสก์ท็อปของฉันผ่าน xdg) อย่างไรก็ตาม ณ จุดนี้ Emacs แฮงค์และฉันต้องออก ( C-g
) เพื่อรับการควบคุมกลับ หลังจากนั้นจะไม่มีการเปิดไฟล์ PDF ใหม่ สิ่งเดียวกันเกิดขึ้นถ้าฉันพยายามโทรหา emacsclient โดยตรง:
(shell-command-to-string "emacsclient -n tmp.pdf")
คำสั่งการทำงานทั้งที่บรรทัดคำสั่ง (เช่นและemacsclient -n tmp.pdf
texdoc --view listings
คำถามของฉันคือในกรณีเช่นนี้ฉันจะเรียก emacsclient จากภายใน Emacs ได้อย่างไร (และฉันรู้ว่าฉันสามารถเปิดไฟล์ pdf ด้วยfind-file
; นั่นไม่ใช่ตัวเลือกที่นี่เพราะฉันต้องเรียกกระบวนการภายนอก (texdoc) เพื่อค้นหาไฟล์และกระบวนการนั้นจะเรียก emacsclient)
texdoc --view
แล้วเปลี่ยนกลับเป็น Emacs เมื่อเปิดไฟล์ แต่ฉันคิดว่าควรมีวิธีการทำเช่นนี้ในขั้นตอนเดียวจาก Emacs?
(async-shell-command "emacsclient -n tmp.pdf")
แก้ปัญหาได้หรือไม่
(async-shell-command "emacsclient -n tmp.pdf")
งานได้ แต่(async-shell-command "texdoc --view listings")
ไม่ใช่ นั่นเป็นเบาะแสที่มีประโยชน์
C-u C-c ?
ทำงานหรือไม่ มันแสดงให้เห็นเป็นครั้งแรกรายการเอกสารที่เกี่ยวข้องกับการแพคเกจ, (call-process "texdoc" nil 0 nil "--just-view" doc)
แล้วเปิดดูด้วย
texdoc -M --list listings
เพื่อค้นหาไฟล์แล้วใช้find-file
?