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:-3yankLas 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; :.,+3yanky :,+3yankson lo mismo)+ny -n.Ver :help [range]para más información.
:4yankcon: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 ppara 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.