Vim: inserte una línea vacía sobre la línea actual (no abierta, es decir, sin ingresar al modo Insertar)


21

¿hay alguna forma de insertar una nueva línea sobre la actual, sin abrir la línea (sin ingresar al modo Insertar)? Es decir, como "O", pero sin abrir.


2
¿Qué significa "abrir una línea"?
Matteo Riva

"abrir una línea" significa pasar del modo normal al modo de inserción, que es lo que sucede cuando presiona "O" (oh).
tmadsen 01 de

Respuestas:


8

Uso el complemento de Tim Pope sin impedimentos, que tiene un comando específicamente para este propósito:

[<space>

Y si desea agregar un espacio después de la línea en la que se encuentra:

]<space>


28

La definición de su solicitud es O.

Lógicamente al insertar una nueva línea arriba sería O.

Para insertar antes del cursor: i
Después: a
Antes de la línea (inicio): I
Agregar al final de la línea:A

Lo más cerca que creo que vendrás es lo Ique colocará el cursor al comienzo de la línea.


Quizás no estaba claro. El escenario es este: estoy en modo normal y quiero insertar una línea en blanco sobre la que estoy actualmente, mientras permanezco en modo normal. Presionando "O" me pone en modo de inserción. Tal vez no hay forma de hacerlo y eso está bien, solo pensé en preguntar :)
tmadsen

3
Solo mapearlo,m`O+Esc`
Josh K

1
Buena idea, no lo había considerado. Hizo un: noremap <leader> O O <ESC>
tmadsen

2tmadsen: Puede asignar este <yourkey> O <ESC>
nXqd

9
:h append()

No moverá el cursor, le permitirá insertar tantas líneas (vacías o no) como desee, y no modificará la marca de posición anterior.

call append(line('.')-1, '')

sí, eso es +1 ordenado! / me cambia su vimrc
akira

Bueno, tiene algunas ventajas cuando se trata de secuencias de comandos. Es un poco excesivo escribir de otra manera.
Luc Hermitte

+1 para una solución que funciona independientemente de cómo se haya configuradoformatoptions
Micah Smith

5

Puede asignar cualquier tecla o secuencia de teclas que desee

m`O<ESC>``

esto inserta una línea en blanco sobre la actual manteniéndolo en modo normal y sin cambiar la posición del cursor.


entonces el comando para asignar esto a Alt-O sería: map <Mo> m`O <ESC> ``
K Robinson

Eso es correcto.
Matteo Riva

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.