write start sheet commands cheat and vim insert mode

start - vim save and exit



Vim: ¿por qué no ": normal! i ”entrar en el modo de inserción? (4)

Además de los startinsert ya mencionadas, puedes usar feedkeys() :

call feedkeys(''A'', ''n'')

hará lo que quiera, pero la clave que agregó de esta manera solo se procesará después de que finalice la ejecución del script / function / mapping / etc actual.

En vim , si ejecuto lo siguiente desde la línea de comando

:normal! i

vim no entra en el modo de inserción. Igualmente el comando

:normal! A

moverá el cursor al final de la línea, pero el cursor permanece en el modo de inserción.

¿Alguna idea de por qué esto no funciona? A falta de eso, me gustaría saber una forma alternativa de ingresar al modo de inserción desde el cuerpo de una función vimscript (y hacer que el modo de inserción persista después de que la función retorne, por supuesto).

Edición: Parece que :startinsert la segunda parte de la pregunta, pero todavía me pregunto cómo puedo hacer algo como :normal! A :normal! A o :normal! a y por qué no funcionan simplemente como se espera. Simular "añadir" con movimientos de flechas es una mala solución, debido a cosas como líneas vacías y demás.


El comando normal considera que el final en modo de inserción es un comando incompleto y se cancela. De la help normal :

{comandos} debe ser un comando completo. Si {comandos} no finaliza un comando, el último se cancelará como si se escribiera <Esc> o <CC> . La pantalla no se actualiza mientras ": normal" está ocupado. Esto implica que se debe completar un comando de inserción (para iniciar el modo Insertar, consulte: startinsert)

:startinsert puede ser el comando que está buscando.

:normal A se puede lograr :normal A añadiendo un bang ( ! ) al startinsert de startinsert , como lo sugiere Ingo Karkat . Desde la help startinsert :

Cuando el ! Se incluye funciona como "A", se anexa a la línea.


En lugar de :normal A , use :startinsert! (con ! ). Se menciona en la ayuda.

Para :normal a , mueva el cursor a la derecha, luego haga :startinsert .


para ir a un tipo de línea específico

vim -c "30"

Ahora estarás en la línea 30, hazlo en modo insert

vim -c "30" -c startinsert

Ahora estás en modo de inserción, elimina esa línea

vim -c "30" -c startinsert -c d1