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?
Respuestas:
Use
3Y
para tirar 3 líneas en el registro predeterminado;"i3Y
para 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
V
comandos y moverlos, y luego presionary
para tirar o"_y
tirar 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.fuente
V
es el modo de línea visual,v
es el modo visual.%)
Desde cualquier lugar dentro del archivo, puede usar lo siguiente.
Yank lines 2 - 5. EN REGISTRO a
Pegue el registro debajo de la línea 7.
fuente
Use
m
para marcar el inicio, con un nombre de búfer (para que pueda escribirmx
). Mueva el cursor hacia abajo donde desee detener la copia y escribay'x
(od'x
si está cortando y pegando). Luego mueva el al punto donde desea pegar y escribap
.La hoja de trucos del comando Vim
fuente
v
nom
?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,
"r5yy
tiraría cinco líneas que comienzan en el cursor en el registro 'r'. (O podría escribir:.,+4y r
para hacer lo mismo en modo ex.) También puede combinar números con objetos de texto;"r10y)
.fuente
Es posible tirar de varias líneas en caso de que sea una última búsqueda.
Por ejemplo, dado el siguiente patrón multilínea no codicioso :
entonces tendrá su patrón multilínea arrancado (entre
start
yend
) en su@i
registro (imprimir porecho @i
).Relacionado: ¿Cómo imprimir una coincidencia de varias líneas? en Vi
fuente