Me pregunto si puedo insertar una nueva línea sin salir del modo normal. Por ejemplo, tengo dos líneas:
this is line one
this is line two
Y el cursor está en la línea uno. Ahora quiero una nueva línea entre la línea uno y la línea dos, así:
this is line one
this is line two
Sé que cuando estoy en modo normal, simplemente puedo presionar o
. Pero esto entraría en modo de inserción.
¿Cómo puedo insertar una nueva línea como y permanecer en modo normal?
normal-mode
Alex
fuente
fuente
Respuestas:
Yo uso un mapeo para eso:
De esta forma, puede insertar una línea debajo del cursor con
<Leader>o
y una en la línea anterior con<Leader>O
.Nota: Se podría argumentar que requiere tantas pulsaciones de teclas como,
o<Esc>
pero esperamos que haya elegido a su líder para facilitar este tipo de mapeo. Además, no estoy seguro de que haya una forma integrada de hacer esto.fuente
Una solución que no pasa por el modo de inserción, no mueve el cursor y le permite usar un contador para agregar varias líneas a la vez ( 3\oetc.):
fuente
Yo personalmente recomiendo usar el plugin intacto de Tim Pope . Proporciona muchas asignaciones, pero las que buscará son
[<space>
y]<space>
que crean líneas en blanco encima y debajo de la línea actual, respectivamente. Unimpaired también proporciona buenas asignaciones para moverse a través de la lista de soluciones rápidas, la lista de búfer, la alternancia de opciones y muchos otros. Mira:h unimpaired
para más.Si no desea utilizar un complemento no dañado, pero al igual que las asignaciones a continuación, encontrará algunas asignaciones rápidas para colocar en su
~/.vimrc
archivo:fuente
Si no desea agregar asignaciones, puede tirar de
yy
una línea vacía y luego pegarlap
debajo del cursor yP
encima del cursor.fuente
o
registro con"oyy
y péguelo desde allí cuando sea necesario con"op
.Mi mapeo usa
Shift-Enter
. Se diferencia de los demás en que el cursor se devuelve a la misma línea y columna utilizando la marca o.fuente
<S-Enter>
no funciona en emuladores de terminal (solo funciona en gVim). Por lo tanto, deberá elegir una combinación de teclas diferente paraEsta respuesta de Maxim Kim cambió la vida:
y mi riff sobre eso:
Pon esas líneas en tu
vimrc
. A continuación, ir al principio de la segunda línea del archivo y de golpe Space, Entero ir hasta el final de la primera línea y de golpe Shift+Space, Enter. Cualquiera agregará la línea vacía entre la primera y la segunda línea, y lo dejará en modo normal.También puede usarlos para cualquier otra tecla individual: presione Spaceo Shift+Spacesiga la tecla que desee y la insertará o agregará, respectivamente.
fuente
Estas asignaciones harán exactamente lo que está buscando.
Estos insertan n número de líneas nuevas antes o después del cursor; manteniendo el cursor exactamente donde está, sin cambiar la lista de salto.
Otra solución es crear un acceso directo que llene el registro sin nombre con una nueva línea. Luego puede usar los comandos put, p o P para insertar nuevas líneas. Por ejemplo:
fuente
Mi mapeo para esto
Diferente de statox ya que esto mantiene el cursor en la misma ubicación.
fuente
<silent>
significa:h map-silent
.Mi solución personal pega un carácter de nueva línea en el registro de expresión y lo pega después de la línea actual, luego vuelve a la posición original:
fuente