विम में मिलान एक्सएमएल टैग के लिए कूदो


140

विम %ऑपरेटर कोष्ठक से मेल खाता है, टिप्पणी समाप्त होती है और कुछ अन्य चीजें। हालाँकि, यह XML टैग्स (या मेरी जानकारी के किसी भी अन्य टैग) से मेल नहीं खाता है।

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

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


4
मूल प्रश्न (स्पष्ट नोट से पहले:) को संबोधित करने में , v + a + t संयोजन आपको दृश्य चयन के निचले भाग पर ले जाता है। इसका दूसरा पक्ष दृश्य मोड के भीतर "ओ" कमांड प्रतीत होता है, जो आपको अपने वर्तमान चयन के वैकल्पिक छोर पर ले जाता है। यह न केवल XML दस्तावेजों में एक प्रभावी ट्रिक है, बल्कि PHP / HTML को संपादित करते समय भी (जैसा कि खुद के लिए भी हुआ हो)।
जस्टिन बेल

जवाबों:


73

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

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


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

34
माचिस का कुछ संस्करण है, जो विम के साथ जहाज पहले से ही btw है। runtime macros/matchit.vimइसे सक्षम करना चाहिए, और %XML टैग से मिलान करने की अनुमति देनी चाहिए ।
Svend

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

यह हो सकता है कि आपके पास पहले से ही मिलान हो, लेकिन डिफ़ॉल्ट रूप से सक्षम नहीं है। इसे सक्षम packadd! matchitकरने के .vimrcलिए जोड़ें । और पढ़ें:help matchit
19

242

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

  • टैग पर कर्सर रखें
  • vat - (बाहरी) टैग का चयन करें और अंत में कर्सर रखें
  • आप के साथ ऊपर और नीचे के बीच टॉगल कर सकते हैं एक बार आप अपने चयन मिल गया है o( माइकल Gruber के नोट के आधार पर अद्यतन )
  • c- yदृश्य मोड को छोड़ने के लिए परिवर्तन या - - कॉपी या

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

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

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

विम संदर्भ (इस नोटिस के लिए @ गीक के लिए धन्यवाद):

: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|
    ...

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

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

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

23
बस ध्यान दें: एक बार जब आप अपना चयन कर लेते हैं, तो आप 'ओ' के साथ ऊपर और नीचे के बीच टॉगल कर सकते हैं
माइकल ग्रुबर

3
@ गीक, 'टी' 'टैग' के लिए है। 'A' को समझने के लिए आपको पहले 'i' को समझना होगा। टैग citके i nterior को परिवर्तित करता है - केवल सामग्री। टैग का एकcat परिवर्तन - सामग्री और एक ही टैग को खोना, दोनों को खोलना और बंद करना।
एडवर्ड

37

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

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

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

बेशक <motion>केवल अपनी पसंद के माध्यम से कहीं जाने का मतलब है और pउस स्थान पर yanked पाठ डालता है।


i"अंदर" (या "आंतरिक") के लिए खड़ा है। a"a" के लिए खड़ा है?
निलोन

@ निलोन का aअर्थ "सभी" है।
कोडी कोडमोनकी

मेरे द्वारा उपयोग किया जाने वाला मेनेमोनिक है जो चारों ओरa खड़ा है । यह मेरे लिए अधिक समझ में आता है।
किट जॉनसन

5

बस "यैंक", "ऑब्जेक्ट-सलेक्ट" (टैग सेलेक्ट) और "जंप टू लास्ट यॅन्क्ड टेक्स्ट" का उपयोग करने की मेरी ट्रिक।

yit`] 

टैग बंद करने से पहले दाईं ओर कूदना

तथा

yit

टैग खोलने के बाद दाईं ओर कूदना

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

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