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.