HTML टैग्स के बीच पाठ हटाएं विम में?


164

मुझे पता है

di<

एक HTML टैग में ही हटा देगा।

क्या दो टैग के बीच पाठ को हटाने का एक आसान तरीका है?

<span>How can I delete this text?</span>

धन्यवाद!

जवाबों:


321

ditएक्सएमएल टैग मिलान के बीच पाठ को हटा देगा। ( it"इनर टैग ब्लॉक" के लिए है।)

देखें :h itऔर :h tag-blocks


30
और, ज़ाहिर है, citजब आप तुरंत बाद में लिखना चाहते हैं।
डेबिल्स्की

6
और आसपास का प्लगइन ( vim.org/scripts/script.php?script_id=1697 ) कमाल का है, जब आप उदाहरण के लिए <p> से <टैग> में आसपास के टैग (cst) को बदलने जैसे काम करना चाहते हैं।
क्रिस जेनकिंस

4
डीट (डिलीट ए टैग ब्लॉक) भी है जिसमें वास्तविक टैग शामिल हैं। सिट जो कि डिट की तरह है लेकिन इसके बाद इन्सर्ट मोड में प्रवेश करता है। बिल्ली जो डाट की तरह है, लेकिन डालने के मोड में प्रवेश करती है। Di "और di (आंतरिक दोहरे उद्धरण को हटाने के लिए और क्रमशः आंतरिक कोष्ठक को हटाने के लिए।
aiham

@KrisJenkins आप एक पूर्ण उदाहरण दिखा सकते हैं कि कैसे प्राप्त करें? मैं केवल उद्धरण / कोष्ठक के साथ ऐसा कर सकता हूं।
फेलिकजेड

1
इसके अलावा vat(या vit), इसके बाद दोहराया at(या it) उत्तरोत्तर टैग का चयन करें। (या v2at, आदि)। फिर dहटाना (आदि)।
जो फ्रीमैन

27
cit
ci"

दो सबसे अच्छी उत्पादकता एनबलर विम के आदेश।

मैं उन दोनों के साथ बहुत समय और प्रयास बचा लेता हूं।


3
citइस थ्रेड में कवर किया गया है, लेकिन पोस्टीरिटी ci"के लिए, अगले "पाए जाने तक हटा देगा । HTML टैग्स में वर्ग के नाम बदलने के लिए बहुत अच्छा है, जैसे <span id="really long annoying-id">- पहले कर्सर के साथ ", हिट करें ci"और उद्धरणों के बीच नए वर्ण डालने में गिरा दें।
एलेक्स मूर-नीमी

ciwयह भी उपयोगी है क्योंकि यह वर्तमान शब्द को हटा देता है; मैं इसका अधिक citऔर ci"वास्तव में उपयोग करता हूं ।
जॉन स्परस्वर

2
@ एलेक्समोर-नीमी: ci"वास्तव में अगले उद्धरण तक बाईं ओर पाठ को हटा देगा और अगले उद्धरण तक दाईं ओर और फिर सम्मिलित मोड दर्ज करें। ct"वास्तव में "अगले" को हटाने के लिए आदेश है "लेकिन" हाँ, यह वही व्यवहार करता है यदि कर्सर बाईं ओर है।
schlimmchen

9

dt <की कोशिश करें, जबकि कर्सर हटाने के लिए पहले वर्ण पर है। अपने उदाहरण में 'एच'।


अन्य स्थितियों के लिए भी बहुत उपयोगी है, धन्यवाद! (सोचा कि मुझे लगता है कि यह "dt <" होना चाहिए)
CMB

1
हालांकि यह तकनीकी रूप से सच है, इसके लिए पहले वर्ण को नेविगेट करने की आवश्यकता है जिसे आप लाइन में कहीं भी कूदने के बजाय हटाना चाहते हैं। लेकिन सच तो सच है। :-)
गीतोंबेटा

4

( कर्सर को हटाने के लिए पहले वर्ण पर ) v / <[enter] d

यह समाधान पहले चरित्र पर शुरू होता है, फिर दृश्य मोड ("वी") में प्रवेश करता है। इसके बाद अगली स्टार्ट ब्रैकेट ("/ <") खोजता है, और फिर खोज से बाहर निकलने के लिए एंटर दबाएं।

इस बिंदु पर, आपका दृश्य चयन टेक्स्ट को हटाने के लिए कवर करेगा। इसे हटाने के लिए d ("d") दबाएं।

अगर मुझे टैग के एक समूह के लिए ऐसा करना पड़ा, तो मैं इसे रिकॉर्ड करूंगा और इसे दोहराने के लिए कुछ अन्य खोजों के साथ जोड़ दूंगा। मुख्य अनुक्रम इस तरह दिख सकता है:

[ फ़ाइल की शुरुआत पर कर्सर ] क्यूए /> [दर्ज करें] lv / <[दर्ज करें] dnq

फिर दबायें:

20 @ एक

20 टैग्स के लिए ऐसा करने के लिए


मैं c/<[enter]अपने "विम जीवन" में बहुत कुछ कमांड का उपयोग करता था , लेकिन अब मुझे इस बारे में थोड़ा पछतावा है। आप देखते हैं, लोकप्रिय अन्य संपादकों / आईडीई के लिए "वी-मोड" प्लगइन्स इस विशिष्ट प्रकार के आदेश का समर्थन नहीं करते हैं। वे समर्थन cit, ci", ct<और फिर भी। इसलिए, मैं फिर से पढ़ा रहा हूं।
पायलट

-1

यदि आप झंडे के बीच पाठ को हटाने का विलोम करना चाहते हैं, तो मैं सुझाव देता हूं कि Vim-Surround स्थापित करें और dstचलाएं जो सराउंड टैग को हटा देता है

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