¿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?


"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.


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.


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


¿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).


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.