Vi संपादक में दिए गए लाइन नंबर पर वर्तमान कर्सर स्थिति से हटाएं


108

मैं वर्तमान कर्सर पंक्ति से vi में दिए गए लाइन नंबर पर पाठ का एक ब्लॉक कैसे हटाऊं?

उदाहरण के लिए:

 49 <j:set var="changeSet" value="${build.changeSet}" /> <----- delete from here (cursor position)
 50 <j:if test="${changeSet!=null}">
 51   <j:set var="hadChanges" value="false" />
 52   <TABLE width="100%">
 53     <TR><TD class="bg1" colspan="2"><B>CHANGES</B></TD></TR>
 54     <j:forEach var="cs" items="${changeSet.logs}" varStatus="loop">
 55       <j:set var="hadChanges" value="true" />
 56       <j:set var="aUser" value="${cs.hudsonUser}"/>
 57       <TR>
 58         <TD colspan="2" class="bg2">${spc}Revision <B>${cs.revision}</B> by
 59           <B><j:choose>
 60             <j:when test="${aUser!=null}">${aUser.displayName}: </j:when>
 61             <j:otherwise>${cs.user}: </j:otherwise>
 62           </j:choose></B>
 63           <B>(${cs.msgAnnotated})</B>                <----- to here (line 63)
 64          </TD>
 65       </TR>
 66       <j:forEach var="p" items="${cs.paths}">
 67         <TR>
 68           <TD width="10%">

विम में मैं आमतौर पर इसके लिए दृश्य चयन मोड का उपयोग करता हूं, लेकिन मेरे पास इस सर्वर पर मेरे निपटान में विम नहीं है। कुछ मामलों में ब्लॉक के भीतर कितनी लाइनें हैं, यह गिनने के बजाय एक पंक्ति संख्या निर्दिष्ट करना भी तेज होगा।


जवाबों:


210

आप d63Gलाइन 63 तक वर्तमान लाइन से हटाने के लिए कुछ का उपयोग कर सकते हैं ।


5
ऊह, सामान्य मोड में एक समाधान - और भी बेहतर!
सीनहॉजेस

50
इसे जोड़ने के लिए, यदि आप रेखाओं को 45 को 64 के माध्यम से हटाना चाहते हैं, तो आप ऐसा करते हैं: 45,64d
थिंककोड

110

से हटाने के लिए एक करने के लिए उपयोग

:a,bd

वर्तमान से बी उपयोग तक

:,bd

(जहां एक और कोड में अपने नंबर की जगह)


1
अति उत्कृष्ट। मैं उपर्युक्त विलोपन उदाहरण के लिए ":।, 63d" करने में सक्षम था। धन्यवाद बोरिंग!
सीनहेड्स

13

स्वीकृत उत्तर के समान, लेकिन टाइप करने के लिए थोड़ा तेज़:

d63gg वर्तमान लाइन से लाइन 63 तक हटाता है।


8

लाइनों की गणना क्यों? अंतिम पंक्ति पर जाएं जिसे आप हटाना चाहते हैं और इसे चिह्नित करके चिह्नित करें maजो "पहचानकर्ता" के साथ "अंक" करता है। फिर शीर्ष रेखा पर जाएं जिसे आप हटाना चाहते हैं और d'a"a" को हटाने के लिए टाइप करें। बैम!


काम नहीं करता (vim 7.4.160, CentOS)। शायद इसे कुछ विस्तार या विशेष कॉन्फ़िगरेशन की आवश्यकता है।
जर्मन खोखलो

6

Vi में लाइनों के एक ब्लॉक को हटाने के लिए:

n: है से लाइन नंबर

m: है करने के लिए लाइन नंबर

  1. वर्तमान पंक्ति से किसी दी गई पंक्ति संख्या तक-

    :,md

  2. से / विशिष्ट लाइन संख्या के लिए

    :n,md

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