salir por editar consola buscar borrar archivo vi editing

por - Eliminar de la posición actual del cursor a un número de línea dado en el editor vi



salir del editor vi (5)

¿Cómo borro un bloque de texto de la fila del cursor actual a un número de línea dado en vi?

Por ejemplo:

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

En Vim usualmente usaría el modo de selección visual para esto, pero no tengo Vim a mi disposición en este servidor. También sería más rápido especificar un número de línea en lugar de contar cuántas líneas hay dentro del bloque en algunos casos.


¿Por qué contar líneas? Vaya a la última línea que desea eliminar y márquela escribiendo ma que lo "marca" con el identificador "a". A continuación, vaya a la línea superior que desea eliminar y escriba d''a para eliminar para marcar "a". Bam!


Lo mismo que la respuesta aceptada, pero un poco más rápido para escribir:

d63gg borra de la línea actual a la línea 63.


Para eliminar de a a b usar

:a,bd

del uso actual a b

:,bd

(donde a y b en el código son reemplazados por sus números)


Para eliminar un bloque de líneas en Vi:

n : es del número de línea

m : es para el número de línea

  1. Desde la línea actual hasta un número de línea dado-

    :,md

  2. desde / hasta números de línea específicos

    :n,md


Puede usar algo como d63G para eliminar de la línea actual hasta la línea 63.