मैं AucTex के साथ पीडीएफ प्रलेखन फ़ाइलों को देखने में एक समस्या है। मैं इमैक के pdf-tools
भीतर से पीडीएफ फाइलों को देखने के लिए उपयोग करता हूं , और मैंने emacsclient -n
अपने डिफ़ॉल्ट पीडीएफ-दर्शक (डेबियन लिनक्स पर xdg-mime के माध्यम से) के रूप में सेट किया है। यह ज्यादातर परिस्थितियों में ठीक काम करता है, लेकिन यह (Tex-documentation-texdoc ...)
ऑक्टेक्स ( C-c ?
) के कार्य को तोड़ देता है ।
मैंने समस्या को कोड की एकल पंक्ति तक सीमित कर दिया है। जब मैं listings
पैकेज के लिए प्रलेखन देखने की कोशिश करता हूं , तो TeX-documentation-texdoc
यह निम्नलिखित सेक्सप में बदल जाता है:
(shell-command-to-string "texdoc --view listings")
texdoc
बदले में कॉल emacsclient
वास्तव में फ़ाइल को खोलने के लिए (इस आधार पर कि मैंने अपने डेस्कटॉप को xdg के माध्यम से कैसे कॉन्फ़िगर किया है)। हालांकि, इस बिंदु पर, Emacs लटका हुआ है और मुझे C-g
नियंत्रण वापस लेने के लिए ( ) छोड़ने की आवश्यकता है । उसके बाद, कोई नया पीडीएफ नहीं खोला जाता है। वही बात होती है अगर मैं सीधे एमॅक्लियर को बुलाने की कोशिश करता हूं:
(shell-command-to-string "emacsclient -n tmp.pdf")
दोनों कमांड कमांड लाइन पर काम करते हैं (यानी, emacsclient -n tmp.pdf
और texdoc --view listings
।
मेरा प्रश्न इस तरह से है, मैं Emacsclient को Emacs के भीतर से कैसे कॉल करूं? (और मुझे पता है कि मैं बस पीडीएफ फाइल को खोल सकता हूं find-file
; यह यहां कोई विकल्प नहीं है क्योंकि मुझे फाइल को खोजने के लिए बाहरी प्रक्रिया (टेक्सडोक) को कॉल करने की आवश्यकता है, और फिर यह प्रक्रिया खाली करने के लिए आमंत्रित करती है)।
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
?