एक प्रमुख मोड कैसे लिखें जो फ़ाइल को नहीं खोलता है, लेकिन उस पर एक दृश्य प्रदान करता है


9

मैं netCDF फाइलों के निरीक्षण के लिए एक प्रमुख विधा लिखना चाहूंगा। ये बाइनरी फाइलें हैं जो आकार में कई जीबी हो सकती हैं। इसलिए मैं उन्हें emacs में नहीं खोलना चाहता।

जो बातचीत मेरे मन में है वह निम्नलिखित है:

  1. उपयोगकर्ता किसी भी अन्य फ़ाइल की तरह emacs में netCDF फ़ाइल खोलता है।
  2. एक कमांड लाइन प्रोग्राम ( ncdump -h) फ़ाइल पर निष्पादित किया जाता है और आउटपुट ईमेक द्वारा व्याख्या किया जाता है।

समस्या यह है कि वास्तव में फ़ाइल खोलने से emacs को रोकने का कोई तरीका नहीं है।


3
दिलचस्प समस्या है। आप इसे प्रमुख मोड से नहीं कर पाएंगे क्योंकि यह बहुत देर से चलता है: Emacs को पहले फ़ाइल खोलने की आवश्यकता है क्योंकि यह फ़ाइल सामग्री (जैसे -*-my-mode-*-) के आधार पर प्रमुख मोड का चयन कर सकता है । आपको पहले हुक करने की आवश्यकता होगी find-find-noselect, शायद उस स्थान पर जहां अब निर्देशिकाओं के लिए एक अपवाद है।
गिल्स एसओ- बुराई को रोकें '

4
क्या आपको केवल एक फ़ंक्शन की आवश्यकता है जो एक प्रक्रिया को चलाता है और आउटपुट को एक विशेष बफर में भेजता है (फ़ाइल नाम एक तर्क है जिसे उपयोगकर्ता चुन सकता है)? किसी अन्य तरीके से आपको एक प्रमुख-मोड की आवश्यकता होगी, क्योंकि यह सामान्य रूप से एक विशेष बफर पर संचालित होता है (जैसे, प्रमुख-मोड का उद्देश्य क्या है, यह क्या करता है?)। यहाँ विभिन्न प्रक्रियाओं का वर्णन करने वाली पुस्तिका का लिंक दिया गया है, जिसे Emacs से शुरू किया जा सकता है: gnu.org/software/emacs/manual/html_node/elisp/…
19-11 को जूल

2
एक शुरुआत का उपयोग करना होगा process-fileया call-processइस तरह की फ़ाइल पर, ncdump -hआदि का उपयोग करना होगा
आकर्षित किया

2
क्या आप एल्पा से पैकेज वेलफेयर जानते हैं ? मुझे लगता है कि यह पैकेज ठीक वही करता है जो आप बाइनरी फ़ाइलों के साथ नहीं बल्कि टेक्स्ट फ़ाइलों के साथ पूरा करने की कोशिश करते हैं। मुझे लगता है कि आप उस पैकेज से सीख सकते हैं कि आपको क्या करना है। यदि आपके पास 64-बिट emacs हैं, तो emacs की पूर्णांक-सीमाएँ भी इस पैकेज के साथ कोई चिंता का विषय नहीं हैं। आप के माध्यम से पैकेज स्थापित कर सकते हैं M-x package-install
टोबियास

1
मैं आपको @ टोबीस के सुझाव पर एक और नज़र डालने की सलाह देता हूं। इसलिए नहीं कि आप वफ़ल की कार्यक्षमता चाहते हैं, बल्कि इसलिए कि वफ़ल को उसी कार्यक्षमता की ज़रूरत होती है, इसलिए यह देखने योग्य है कि यह कैसे होता है।
स्टीफन

जवाबों:



1

मैं एक पैकेज का उपयोग vorbiscommentकरता हूं, जिसे अब मैं अपने शीर्ष लेख में URL पर नहीं पा सकता हूं, और जो कि * ELPA या EmacsWiki पर दिखाई नहीं देता है। यहां वह गैर-कार्यशील URL है:

http://users-phys.au.dk/harder/

वैसे भी, यह आपको मेटाग्रेटा (बाइनरी) ओजीजी वोरबिस ऑडियो फाइलों के लिए टैग संपादित करने देता है, जो वैचारिक रूप से उसी तरह लगता है जैसे आप चाहते हैं। यह वास्तव में कमांड-लाइन टूल के आसपास एक साधारण आवरण है।

मैंने इसे निम्नलिखित gist में कॉपी किया है:

https://gist.github.com/PhilHudson/4fc8f38a5dc2b39f256feddb0014041c

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.