Digamos que estoy en la línea 20 y me gustaría tirar de la línea 4, ¿cómo puedo hacer eso?
Y de manera similar, ¿cómo puedo tirar de una línea en relación con la posición de mi cursor, digamos la 3 líneas arriba?
Digamos que estoy en la línea 20 y me gustaría tirar de la línea 4, ¿cómo puedo hacer eso?
Y de manera similar, ¿cómo puedo tirar de una línea en relación con la posición de mi cursor, digamos la 3 líneas arriba?
Respuestas:
De :help :yank
:
:[range]y[ank] [x] Yank `[range]` lines [into register x].
Entonces, para tirar de la línea 4, uno escribiría:
:4yank
Tenga en cuenta que puede hacerlo fácilmente desde el modo de inserción con <C-o>
; esto le permite ejecutar un comando, después del cual vuelve al modo de inserción; por ejemplo:
<C-o>:4yank
Por supuesto, también puede usar otros rangos. Algunos ejemplos:
:1,3yank
:%yank
:.,$:yank
:.,+3yank
:-3,.yank
:-3yank
Las cosas más útiles para recordar acerca de los rangos:
:line1,line2command
..
es la línea actual (puede omitir el punto en la mayoría de los casos; :.,+3yank
y :,+3yank
son lo mismo)+n
y -n
.Ver :help [range]
para más información.
:4yank
con:4y
Además de los comandos ex-mode que tienes, también puedes lograrlo en modo comando, por ejemplo: 4GY''
- que significa: ir a la línea 4 ( 4G
), tirar de la línea ( Y
) y volver a la línea anterior ( ''
).
También puedes usar marcas de salto; para su segunda pregunta, por ejemplo: mm3kY'm
- lo que significa: establecer la marca m ( mm
), ir tres líneas hacia arriba ( 3k
), tirar de la línea ( Y
), volver a la marca m ( 'm
).
Simplemente escriba
:4y
tirar de la línea 4
irá al registro sin nombre. Luego, (por ejemplo) puede usar p
para ponerlo en otro lugar. También puede usar [n]p
, por ejemplo, 10p para pegarlo 10 veces.
Puede ponerlo en un registro con nombre como "a" con
:4y a
4G"ayy
.