¿Cómo puedo usar un número de línea para copiar una línea donde está mi cursor?

20

Muchas veces estoy en una situación similar a esta:

1. <Line 1>
2. <Line 2>
3. <Line 3>
4. <Cursor is here>
5. <I want to copy line 1 here>

Una solución fácil es mm:1<CR>yy`mp, es decir, hacer una marca en la línea 4, ir a la línea 1, copiarla, volver a la marca y pegar.

¿Existe una solución más corta / más fluida para esto? Hago esto con la suficiente frecuencia que estoy feliz de hacer un mapeo para ello.

Daniel Kleinstein
fuente

Respuestas:

23

Parece un caso de copia ex ( :help :coo :help :t):

:1t4

o, usando la posición del cursor:

:1t.

Esto no copia la línea en el registro de extracción, que puede o no ser lo que desea.

PhilippFrank
fuente
No uso suficiente copia ex, buena sugerencia.
jecxjo
10

Puede acortarlo al no usar marcas y tirar de la línea directamente.

:1y<CR>p

La versión de comando de yank toma una {range}selección de línea o un grupo de líneas.

Además, el valor del rango puede ser absoluto o relativo. Las líneas sobre el cursor son de distancia negativa y las inferiores son positivas. Entonces, tirar dos líneas arriba es :-2yy tirar dos líneas abajo es :+2y.

jecxjo
fuente