¿Cómo puedo tirar varias líneas en un registro?

44

Quiero tirar varias líneas en un solo registro en vim, para pegar fácilmente diferentes plantillas de texto en un documento.

Por ejemplo, "iyy tira solo la línea actual, si trato de seleccionar varias líneas en modo visual, no se escribe en el registro.

¿Alguna sugerencia?

ryz
fuente
"si trato de seleccionar varias líneas en modo visual, no está escrito en el registro". <- ¿En serio? Funciona para mí ...
Billy ONeal
y para mí también ...
ulidtko
ah ok, lo he intentado con "iyv, tonto de mí. debería ser Vjjj", como mencioné ulidtko.
ryz

Respuestas:

59

Use 3Ypara tirar 3 líneas en el registro predeterminado; "i3Ypara entrar en el registro i.

Además, mi forma favorita es no contar las líneas que quiero tirar, sino seleccionarlas en modo visual a través de Vcomandos y moverlos, y luego presionar ypara tirar o "_ytirar en un registro.

Además, acabo de intentar seleccionar varias líneas en el modo Visual Line y pasar a un registro no predeterminado, por ejemplo Vjjj"oy, y funciona.

ulidtko
fuente
1
+1, pero Ves el modo de línea visual, ves el modo visual.
Billy ONeal
ok ok ok Modo de línea visual. %)
ulidtko
1
con mucho gusto lo acepté, la forma más rápida para mí todavía.
ryz
24

Desde cualquier lugar dentro del archivo, puede usar lo siguiente.

:2,5y a

Yank lines 2 - 5. EN REGISTRO a

:7pu a

Pegue el registro debajo de la línea 7.

alock27
fuente
1
La pregunta fue: "¿Cómo puedo tirar varias líneas en un registro ?". Muestre cómo funcionan estos comandos con los registros.
Scott
Espero que mi edición cumpla con tu solicitud.
alock27
Lo siento, no. La pregunta mencionó explícitamente "registrarse" repetidamente, se refirió a "pegar fácilmente diferentes plantillas de texto" y dio un ejemplo utilizando un registro no predeterminado.
Scott
3
@Scott Mis disculpas. ¿Por qué no dijiste simplemente: "Amigo, comprueba tu método con: reg. Verás que no funciona". Y hubiera sido todo como, "Whoa, mi mal".
alock27
1
Estaba buscando una manera de tirar del archivo who en register + para copiarlo en el portapapeles del sistema. :% y + hizo el truco, gracias.
AlexMA
10

Use mpara marcar el inicio, con un nombre de búfer (para que pueda escribir mx). Mueva el cursor hacia abajo donde desee detener la copia y escriba y'x(o d'xsi está cortando y pegando). Luego mueva el al punto donde desea pegar y escriba p.

La hoja de trucos del comando Vim

Nifle
fuente
¿Estás seguro de que no quieres decir que vno m?
Billy ONeal
@BillyONeal 'v' inicia el Modo Visual, y le permite hacer lo mismo, 'm' se usa para "marcar" una región.
Nifle
6

Prefijas el comando con un número para obtener cuántas líneas operar. También podría usar un 'objeto de texto' (como ']' para el bloque y ')' para el párrafo), esto funcionaría en varias líneas contextualmente, el valor predeterminado es a menudo una sola línea. Por ejemplo, "r5yytiraría cinco líneas que comienzan en el cursor en el registro 'r'. (O podría escribir :.,+4y rpara hacer lo mismo en modo ex.) También puede combinar números con objetos de texto; "r10y).

Arcege
fuente