web-dev-qa-db-fra.com

Supprimer de la position actuelle du curseur sur un numéro de ligne donné dans l'éditeur vi

Comment puis-je supprimer un bloc de texte de la ligne actuelle du curseur sur un numéro de ligne donné dans vi?

Par exemple:

 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%">

Dans Vim, j'utilisais généralement le mode de sélection visuel pour cela, mais je n'ai pas Vim à ma disposition sur ce serveur. Il serait également plus rapide de spécifier un numéro de ligne plutôt que de compter le nombre de lignes dans le bloc dans certains cas.

97
seanhodges

Vous pouvez utiliser quelque chose comme d63G pour supprimer de la ligne en cours jusqu’à la ligne 63.

187
cnicutar

Pour supprimer de a à b utilisez

:a,bd

de courant à b utiliser

:,bd

(où a et b dans le code sont remplacés par vos numéros)

108
borrible

Identique à la réponse acceptée, mais légèrement plus rapide à taper:

d63gg supprime de la ligne actuelle la ligne 63.

11
apostl3pol

Pour supprimer un bloc de lignes dans Vi:

n: is from numéro de ligne

m: is to numéro de ligne

  1. De la ligne en cours jusqu'à un numéro de ligne donné -

    :,md

  2. de/vers des numéros de ligne spécifiques

    :n,md

6
SteveScm

Pourquoi compter les lignes? Allez à la dernière ligne que vous souhaitez supprimer et marquez-la en tapant ma qui la "marque" avec l'identifiant "a". Ensuite, allez à la ligne supérieure que vous souhaitez supprimer et tapez d'a pour supprimer pour marquer "a". Bam!

5
Gary_W