2009-02-01 16 views
127

विम % ऑपरेटर मिलान करने वाले ब्रांड्स, टिप्पणी समाप्त होता है और कुछ अन्य चीजों में मिलान करने के लिए कूदता है। हालांकि, यह XML टैग (या कोई अन्य टैग, मेरे ज्ञान के सर्वोत्तम से मेल नहीं खाता) से मेल नहीं खाता है।विम

विम का उपयोग कर मिलान करने वाले XML टैग पर कूदने का सबसे अच्छा तरीका क्या है?

नोट: क्या मैं सच में क्या करना चाहते हैं मैन्युअल मिलान टैग की तलाश में बिना किसी XML फ़ाइल में एक वर्ग नकल है।

+4

मूल प्रश्न को संबोधित करने में (स्पष्ट करने से पहले ** नोट: **), [v + a + t संयोजन] (http: //stackoverflow.com/a/10881471/921836) आपको दृश्य चयन के नीचे छोड़ देता है। इसका दूसरा पक्ष विज़ुअल मोड के भीतर "ओ" कमांड प्रतीत होता है, जो आपको अपने वर्तमान चयन के वैकल्पिक अंत में ले जाता है। यह न केवल एक्सएमएल दस्तावेज़ों में एक प्रभावी चाल है, बल्कि PHP/HTML संपादित करते समय भी (जैसा कि मेरे लिए मामला हुआ)। –

+0

@ जस्टिनबेल: यह एक साफ चाल है! धन्यवाद! मुझे लगता है कि यह अपने आप के सवाल के लायक है :-) –

+0

संबंधित: [एचटीएमएल/एक्सएमएल टैग मिलान करने के बीच कैसे कूदें?] (Http://vi.stackexchange.com/q/780/467) Vim SE – kenorb

उत्तर

71

matchit.vim नामक एक विम प्लगइन है। आप इसे यहां पा सकते हैं: http://www.vim.org/scripts/script.php?script_id=39। यह आपके द्वारा वर्णित सटीक उद्देश्य का निर्माण किया गया था।

इंस्टॉल करें, अपने कर्सर को टैग के शरीर पर रखें (<> नहीं, अन्यथा यह उनसे मेल खाएगा) और दूसरे टैग पर जाने के लिए% दबाएं। यह पता लगाने के लिए स्क्रिप्ट का पृष्ठ देखें कि यह और क्या मेल खाता है।

+3

पर अच्छा है । हर समय मेरी हार्ड डिस्क पर बैठा है। – innaM

+34

मिलान का कुछ संस्करण है, जो पहले से ही बीएमडब्ल्यू के साथ जहाज है। 'रनटाइम मैक्रोज़/matchit.vim' इसे सक्षम करना चाहिए, और एक्सएमएल टैग से मिलान करने के लिए '%' की अनुमति दें। – Svend

+0

mtchit.vim डिफ़ॉल्ट रूप से NeoVim में सक्षम प्रतीत होता है। – James

35

ओपी ने कहा कि वह वास्तव में क्या करना चाहता था वह मिलान टैग को ढूंढे बिना एक्सएमएल के एक वर्ग की प्रतिलिपि बना रहा है। यह yat<motion>p के साथ सामान्य मोड में आसानी से किया जाता है, जो अंदर के पाठ को जोड़ता है और मिलान टैग सहित, फिर इसे चिपकाता है। yit<motion>p लगभग समान है, लेकिन इसमें बाहरी टैग शामिल नहीं हैं।

स्ट्रिंग में 'वाई' निश्चित रूप से सामान्य मोड "यांक" कमांड है। (:help y)

a या i एक जैसे y ऑपरेटर के बाद या एक दृश्य चयन के अंदर वस्तु के चयन के लिए इस्तेमाल किया जा सकता। a या i के बाद का प्रतीक निर्दिष्ट करता है कि क्या चुना जाना चाहिए। ऑब्जेक्ट टाइप t यहां इस्तेमाल किया गया एक एसजीएमएल टैग इंगित करता है। (:help object-select)।

बेशक <motion> सिर्फ आपकी पसंद के माध्यम से कहीं स्थानांतरित करने का मतलब है और p उस स्थान पर यंक किए गए टेक्स्ट को रखता है।

+0

उत्तर समझाते हुए मन? – shredding

+1

@shredding: आप सही हैं, यह थोड़ा और अधिक योग्य है। –

206

आप अतिरिक्त प्लगइन के बिना यह कर सकते हैं: टैग पर

  • जगह कर्सर
  • वीएकटी - अंत
  • पर (बाह्य) टैग और जगह कर्सर का चयन करेंगे
  • एक बार जब आप अपना चयन प्राप्त कर लेंगे तो आप शीर्ष पर और नीचे (अपडेट माइकल ग्रबर के आधार पर अपडेट कर सकते हैं के ध्यान दें)
  • - परिवर्तन या, y - प्रतिलिपि या, दृश्य मोड छोड़ने के लिए बच ...

एक अन्य उपयोगी ऑपरेशन है: वीमैंटी - टैग (आंतरिक) की सामग्री का चयन करेंगे।

अद्यतन (धन्यवाद @elrado करने के लिए) उदाहरण: वीमैंटी चयनित पाठ की शुरुआत पर टैग और स्थिति कर्सर की अंदरूनी सामग्री का चयन करने के लिए सक्षम होगा।

संदर्भ: https://superuser.com/questions/182355/how-can-i-select-an-html-tags-content-in-vim

विम संदर्भ (यह बाहर ध्यान देने योग्य बात के लिए @Geek करने के लिए धन्यवाद):

:help visual-operators 

आप प्राप्त करेंगे:

4. Operating on the Visual area    *visual-operators* 

The objects that can be used are: 
    ... 
    at a <tag> </tag> block (with tags)  |v_at| 
    it inner <tag> </tag> block   |v_it| 
    ... 
+0

मैं एक टैग पर कूदना चाहता हूं, संलग्न सामग्री को "चयन करें" नहीं। और यदि मैं इसे 1 या 2 कुंजी स्ट्रोक के साथ कर सकता हूं, तो मैं हर बार 5 कुंजी-प्रेस क्यों करूंगा जब मैं एक टैग चुनना चाहता हूं? (जो वास्तव में बहुत बार होता है) –

+2

अच्छा है कि बंद टैग में कूदने के लिए एक ठोस तरीके से, एक अंतर्निहित तरीका है। दृश्य मोड के माध्यम से वहां पहुंचने का एकमात्र तरीका है? –

+1

पवित्र मौली, आप हमेशा विम के साथ नई चीजें सीखते हैं! सीखने के लिए बहुत कुछ है, इससे मुझे बहुत मदद मिली, धन्यवाद! – gosukiwi

5

बस मेरे "झटका का उपयोग करने का चाल "," ऑब्जेक्ट-सिलेक्ट "(टैग का चयन करें) और" पिछले यंक किए गए टेक्स्ट पर जाएं "।

yit`] 

टैग

और

yit 

अंतिम टैग खोलने

नोट के बाद सही करने के लिए कूद करने के पहले सही करने के लिए कूद करने के लिए: यह डिफ़ॉल्ट रजिस्टर की सामग्री को बदल जाएगा