Vim में एक regex से मेल खाने वाली लाइनों से पहले पाठ की एक पंक्ति डालें


2

मैं vim का उपयोग करके HTML तालिका में एक कॉलम जोड़ने का प्रयास कर रहा हूं, इसलिए मुझे <td>प्रत्येक से पहले टैग की एक जोड़ी को लाइन में जोड़ने की आवश्यकता है </tr>। अब तक मेरे पास है

:186,$s/ <\/tr>/<td><\/td> \n <\/tr>/g
लेकिन ^@समापन ट्र टैग के लिए एक नई लाइन बनाने के बजाय विम दिखाता है । क्या उसके आसपास कोई रास्ता है?

जवाबों:


4

हां, आपको प्रतिस्थापन भाग के \rबजाय \n, वीम की :sकमांड के एक क्विक का उपयोग करने की आवश्यकता है । और आप एक अलग विभाजक का उपयोग करके कमांड को और सरल बना सकते हैं, उदाहरण के लिए #, और मैच का संदर्भ देकर &:

:186,$s# </tr>#<td></td> \r&#g

धन्यवाद! मैं थोड़ा उलझन में हूँ क्योंकि मुझे लगा कि विंडोज़ के लिए \ n लिनक्स न्यूलाइन वर्ण था और \ r \ n था। ? इसके अलावा, क्या यह "के साथ और मैच का उल्लेख करने का क्या मतलब है
— Yitzchak

1
यह समझाया गया है :h s/\rऔर :h s/\&, सम्मान। &मैच, यानी शामिल </tr>है, तो आप इसे दोहराने की जरूरत नहीं है। तुम भी एक जोर का उपयोग कर सकते हैं \zs, लेकिन यह और भी अधिक उन्नत है ...
— इंगो करकट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.