Por ejemplo
¿Cómo puedo tirar y pegar la Línea 4 solo en la Línea 12 sin tener que mover el cursor a la Línea 4?
Por ejemplo
¿Cómo puedo tirar y pegar la Línea 4 solo en la Línea 12 sin tener que mover el cursor a la Línea 4?
Respuestas:
Si el cursor ya está en la línea 12, entonces un simple
: 4 años PAGS
lo hace por mi
x
? Cuando lo intento :4x
consigo E140: Use ! to write partial buffer
. ¡Gracias!
:4d
Qué tal esto: el cursor está en la línea 11, estás en modo "vi".
:4co.<return>
Aparentemente también puedes hacerlo con un patrón:
:/^Yank/co.<return>
Puede usar "mo" (mover) en lugar de "co" (copiar) para mover la línea, en lugar de tirar y poner.
:4t.
Prueba esto:
:4,4y
P
Otros ya han mencionado el método más directo para hacer esto, que es :4y
, pero quiero agregar dos notas al respecto que pueden ser útiles:
Uno, si escribe :help range
, aprenderá todo sobre el uso de rangos para aplicar a los comandos de estilo Ex. MUY útil en muchos casos, y mucho más versátil que usar números de línea. Por ejemplo, si desea tirar de la primera línea que comienza con "tirar" después del comienzo del documento (incluso si está en la primera línea), use :0/^yank/y
. La parte más poderosa de los rangos es la capacidad de combinarlos, por ejemplo, :./^Chapter/+50?Pete?d
significa "Buscar la siguiente línea para comenzar con la palabra Capítulo (buscar hacia adelante desde la línea actual), luego saltar 50 líneas y buscar hacia atrás la palabra Pete, y elimine la primera línea en la que la encuentre ". Excepto que en realidad no mueve el cursor, simplemente HACE lo que le dices.
(He usado este tipo de especificación de rango para automatizar la creación de documentación complicada que implica buscar el nombre de la función debajo del cursor, luego buscar la siguiente línea que dice "Descripción" y tirarla a un registro específico ... etc.)
El otro consejo es que debes saber sobre el salto. Escriba :help jump-motions
para obtener más información, pero la forma en que se relaciona aquí es que puede saltar a la línea 4, tirar de él y luego VOLVER con 4Gyy''
(o usar teclas de retroceso en lugar de apóstrofes para volver a su posición de inicio exacta, en lugar de simplemente la misma LÍNEA empezaste a las)
Más corto:
:1t.
copia la primera línea debajo de la actual.
Con rangos:
:1,4t.
copia las líneas 1 a 4 (inclusive) debajo de la actual.
También es posible con números de línea relativos:
:-1t.
copia la línea anterior debajo de la actual.
En su ejemplo :4t-1
, copiaría la cuarta línea debajo de la línea deseada.
Nota: :t
es un sinónimo del :co[py]
comando.