2011-06-07 16 views
58
में HTML टैग, नहीं सामग्रियों को हटाना

मैं निम्नलिखित एक फ़ाइल है कि मैं Vim में खोला में कोड का टुकड़ा:कैसे विम

<p>Hello stackoverflow!</p> 

मैं कैसे <p> और </p> टैग हटाना लेकिन बीच सामग्री रख सकते उन्हें? यही कारण है, मैं क्या समाप्त करने के लिए के साथ दबाना चाहिए:

Hello stackoverflow! 

मैं दबाने पता मैंटी विपरीत करेंगे।

मैं Janus का उपयोग कर रहा हूं।

उत्तर

69
surround.vim प्लगइन स्थापित, प्रेस घ के साथ

एसटी से डी एलीट एसटी एजी के आसपास।

इसी शॉर्टकट:

  • रों( - आसपास हटाना कोष्ठकों ()
  • रों" - आसपास के हटाने के दोहरे उद्धरण चिह्नों ""
  • रों' - हटाना आसपास एकल उद्धरण ''

और इतने पर ...

+0

यह मेरे लिए समाधान है। धन्यवाद। – retro

+1

यह सबसे अधिक जवाब दिया जाना चाहिए, क्योंकि हर किसी को इन दिनों टीपीओपीएस भयानक प्लगइन का उपयोग करना चाहिए! :) – walialu

+0

मुझे 'di ... 'और' da ...' के बारे में पता था, लेकिन मैंने अभी 'डीएस ... 'के बारे में सीखा। बहुत उपयोगी! –

3

अपनी पसंद का एक प्रमुख करने के लिए मानचित्र इस:

vat<Esc>da>`<da> 

से http://vim.wikia.com/wiki/Delete_a_pair_of_XML/HTML_tags

+0

धन्यवाद, मैं वह भी देखा। लेकिन मैं इसे उसी तरह मैप करना चाहता हूं जैसे कि बिट। उदाहरण के लिए डॉट। – retro

+1

@retro आम तौर पर इसे "डॉट" पर मैप करने का अच्छा विचार नहीं है क्योंकि वह अन्य बहुत ही आसान vim कमांड को छाया करता है, यानी "सिंगल-दोहराना" –

+0

हां, अब मैं समझता हूं। – retro

76

लिया एक सरल समाधान (कहीं भी टैग के अंदर कर्सर के साथ) होगा:

yitvatp 

क्या यह है:

  • y - yanks
  • it - टैग
  • vat के अंदर - पूरे टैग
  • p का चयन करता है - चिपकाता इस पर पहले से yanked पाठ
+4

इसे करने के लिए बहुत ही शानदार तरीका है। – Benoit

+0

वास्तव में अच्छा रैंडी! मैं surround.vim प्लगइन का उपयोग कर रहा हूं, इसलिए बेनोइट का जवाब वास्तव में मेरे लिए समाधान है। – retro

+1

बहुत अच्छा। मैंने कुछ और विवरण देने के लिए एक पूरक उत्तर पोस्ट किया। धन्यवाद रैंडी! – Rob

6

प्यार रैंडी के (+1) जवाब और मैं बस टैग ब्लॉक के बारे में सीखा!यह सिर्फ एक पूरक जवाब है।

तो यॉट का अर्थ है "यांक आंतरिक टैग ब्लॉक" और वैट का अर्थ है "दृश्य मोड पर जाएं और (संपूर्ण) टैग ब्लॉक चुनें"।

यह सिर्फ उन है कि बहुत मदद फ़ाइल को पढ़ने के लिए आलसी हैं के लिए है:

Tag blocks      *tag-blocks* 

For the "it" and "at" text objects an attempt is done to select blocks between 
matching tags for HTML and XML. But since these are not completely compatible 
there are a few restrictions. 

The normal method is to select a <tag> until the matching </tag>. For "at" 
the tags are included, for "it" they are excluded. But when "it" is repeated 
the tags will be included (otherwise nothing would change). Also, "it" used 
on a tag block with no contents will select the leading tag. 

"<aaa/>" items are skipped. Case is ignored, also for XML where case does 
matter. 

In HTML it is possible to have a tag like <br> or <meta ...> without a 
matching end tag. These are ignored. 

The text objects are tolerant about mistakes. Stray end tags are ignored.