2010-02-15 13 views
36

द्वारा खोजने के लिए vim का उपयोग करें मुझे एक फ़ाइल साफ़ करने की आवश्यकता है। हमारे पास एक एक्सएमएल पार्सर है जो उस पर चलता है जो फाइल में एस्केप कैरेक्टर (0x1B) के कारण विफल हो रहा है। मैं यह जानने के लिए विम का उपयोग कैसे करूं कि उस चरित्र में फ़ाइल कहां है, इसलिए मैं इसे हटा सकता हूं?हेक्स कोड

उदाहरण फ़ाइल:

<?php 
echo "Hello, world.\n";       
?> 

रूपांतरण के बाद:

0000000: 0a3c 3f70 6870 0a65 6368 6f20 2248 656c .<?php.echo "Hel 
0000010: 6c6f 2c20 776f 726c 642e 5c6e 223b 0a3f lo, world.\n";.? 
0000020: 3e0a 

तो मैं एक चार को हटा दें: (, "एच" इस उदाहरण में)

0000000: 0a3c 3f70 6870 0a65 6368 6f20 22 656c .<?php.echo "Hel 
0000010: 6c6f 2c20 776f 726c 642e 5c6e 223b 0a3f lo, world.\n";.? 
0000020: 3e0a 

सूचना कैसे पहली पंक्ति अब पर्याप्त नहीं है। जब मैं इसे वापस परिवर्तित करता हूं, तो मुझे मिलता है:

^@<?php 
echo "el^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@> 

उत्तर

46

खोज (उदाहरण के लिए /) \%x1b के लिए। वी -

तुम भी नियंत्रण वर्ण, उन्हें पूर्ववर्ती द्वारा Ctrl साथ टाइप कर सकते हैं बच सहित, कमांड लाइन में। तो टाइप /, Ctrl-V का, Esc, दर्ज करें।

+1

मुझे यकीन नहीं है कि कितना अधिक विस्तार की आवश्यकता है। हेक्स प्रतिनिधित्व में स्विचिंग परेशान मत करो। विम एक भागने वाले चरित्र को '^ ['' के रूप में दिखाएगा। मेरे तरीकों का उपयोग करके इसके लिए खोजें और, कर्सर के साथ, इसे 'x' का उपयोग करके हटाएं। – Nefrubyr

+0

वंशावली के लिए: nerfrubyr की टिप्पणी स्पष्टीकरण के लिए पूछे जाने पर एक टिप्पणी के संबंध में थी। यह पता चला कि मैं कुछ गलत टाइप कर रहा था। इन दोनों विचारों के लिए महान काम करते हैं। –

+1

उन लोगों के लिए नोट करें जिनके पास "पेस्ट" (उदाहरण के लिए विंडोज़ जीवीआईएम पर डिफ़ॉल्ट) के लिए मैप किया गया है: आपको के लिए नियंत्रण वर्णों के साथ एक ही चाल करने के लिए प्रतिस्थापित करने की आवश्यकता होगी। – Chris

10

[escape] :%!xxd कर एक हेक्स संपादक में बदलाव करें। फिर 0x1B (/1B) के लिए खोजें।

+0

एक बार मैंने इसे उस मोड में खोला है, तो मैं उस char को कैसे हटा सकता हूं और फ़ाइल को सहेज सकता हूं? –

+1

char, नेविगेट करने के लिए एच, जे, के, एल का उपयोग करें, 'आर' दबाएं और नया अक्षर दर्ज करें। फिर बचें, wq छोड़ने और बचाने के लिए। –

+0

मैं चरित्र को प्रतिस्थापित नहीं कर रहा हूं, मैं इसे हटा रहा हूं। एक बार इसे हटा दिए जाने के बाद, पंक्तियां मेल नहीं खाती हैं। विज़ुअल हेक्स से वापस एसीआई में अनुवाद करते समय वीआईएम एक छोटी पंक्ति को संभालता है? –

संबंधित मुद्दे