बाइनरी फ़ाइल के बीच से डेटा को हेक्स-मोड के साथ हटाएं


10

मेरे पास एक बहुत बड़ी बाइनरी फ़ाइल (कुछ एमबी की दसवीं) है और बीच में कुछ केबी को कहीं दूर करना चाहूंगा, यह सैंडविच डेटा है न तो शुरुआत और न ही अंत।

आदर्श रूप से मैं emacs का उपयोग करना चाहूंगा और हेक्स-मोड एक संभावित उम्मीदवार लगता है।

क्या हेक्सल बफर से एक लाइन को हटाना संभव है? Ctrl- kनौकरी नहीं लगती। मैं कोड को देखने के लिए खुश हूं, लेकिन जो भी कारण हेक्स-मोड की तलाश में है। मुझे जो भी मिल रहा है वह मेरे Ubuntu 10.04 मशीन Emacs 23.1 पर संकलित .elc फ़ाइल है।

अतिरिक्त रूप से: एक डरपोक चाल में मैं एक और हेक्सल-मोड प्रश्न जोड़ना चाहूंगा जो सीधे शीर्षक में पूछे गए प्रश्न से संबंधित नहीं है, लेकिन मैं जो पूरी समस्या का सामना कर रहा हूं उसका एक हिस्सा है: यह मेरे लिए बहुत उपयोगी होगा यदि मैं प्रति पंक्ति में एक्स हेक्साडेसिमल वर्ण प्रदर्शित कर सकता हूं जहां एक्स स्पष्ट रूप से बाइनरी फ़ाइल के संपादन के साथ बदल रहा है, मुझे ऐसा करने का कोई तरीका नहीं मिल रहा है कि हेक्सल-मोड और सोचा कि मैं यहां सवाल फेंक दूंगा।

जवाबों:


7

हेक्सल मोड आपको वर्णों को हटाने की अनुमति नहीं देता है। स्टैक ओवरफ्लो का यह उत्तर एक वर्कअराउंड का सुझाव देता है: उन वर्णों को ओवरराइट करें जिन्हें आप किसी अन्य वर्ण ("एक्स") के साथ हटाना चाहते हैं, हेक्सल मोड से बाहर स्विच करें, वर्ण खोजें और उन्हें वहां हटा दें।


2

Nhexl- मोड का उपयोग करें (जिसे ELPA से पैकेज के रूप में स्थापित किया जा सकता है)। Nhexl- मोड एक मामूली मोड है; पाठ उस प्रमुख मोड में संपादन योग्य रहता है जिसमें बफर पहले से था।

डिफ़ॉल्ट रूप से, nhexl- मोड ओवरराइट मोड को सक्रिय करता है, लेकिन आप अभी भी हटा सकते हैं। पाठ सम्मिलित करने के लिए, ओवरराइट मोड को बंद करें M-x binary-overwrite-mode

आप निम्न कोड स्निपेट को अपनी init फ़ाइल में डाल सकते हैं ( ~/.emacs) Insertnhexl- मोड में ओवरग्लिंग मोड को टॉगल करने के लिए कुंजी को बांधने के लिए।

(unless (boundp 'nhexl-mode-map)
  (defvar nhexl-mode-map (make-sparse-keymap)
    "Keymap used when `nhexl-mode' is active."))
(define-key nhexl-mode-map [insert] 'binary-overwrite-mode)

यदि आप nhexl- मोड का उपयोग करते हैं तो यह भी रुचि का हो सकता है।

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