¿Cómo cambio entre el modo de comando y el de inserción en Vim?

87

Acabo de comenzar a usar Vim como IDE. Lo estaba usando como editor de prueba por un tiempo, así que no tenía que ir al modo de comando muy a menudo. Pero, como programo en Java, tengo que ir al modo de comando para hacer el archivo, compilarlo / ejecutarlo ... etc.

El problema es: necesito una buena forma de cambiar entre los dos modos.

Busqué en línea y dice que el <Esc> se supone clave debe hacer eso, pero eso no funciona para mí (¿tal vez no sea para gVim? No sé por qué).

Tengo que presionar CTRLOcada vez para ir al modo de comando; la tecla de escape funciona desde ese modo ... me devuelve al modo de inserción. Pero, ¿hay una forma mejor o más fácil de cambiar entre el modo de comando y el modo de inserción?

Ravish Chawla
fuente
2
Esc es definitivamente la tecla correcta para terminar una inserción. Una inserción se puede iniciar de varias formas. I minúscula para comenzar a insertar en el cursor, I mayúscula para comenzar a insertar al principio de la línea, etc.
Vaughn Cato
A partir de un archivo vacío, los siguientes caracteres deberían darle un archivo con la palabra "hola": ihello<ESC>:w hello.txt<ENTER>
Vaughn Cato
8
ctrl-[funciona como sustituto de Esc en muchos teclados.
Vaughn Cato

Respuestas:

52

Parece que su Vim se inicia en modo fácil . Ver :help easy.

Esto sucede cuando se invoca a Vim con el -yargumento o como evim, o tal vez tenga un :set insertmodeen algún lugar de su .vimrcconfiguración. Busque la fuente y desactívela; temporalmente, esto también se puede hacer a través de Ctrl+ O :set noim Enter.

Ingo Karkat
fuente
Creo que eso fue todo. Tenía habilitado el modo de inserción en mi archivo. Después de quitarlo, la tecla de escape funciona perfectamente. ¡Gracias!
Ravish Chawla
8
este es el modo fácil?
Stachu
5
Vim modo fácil, eso es un oxímoron. ¿Es ahí donde es posible salir de vim?
Davos
1
@Davos ese es el modo en el que se inicia en el modo de inserción, así que, irónicamente, es un modo en el que no es posible salir de vim: p "modo normal" es mucho más fácil simplemente alt + :, x XD
Fuseteam
115

Al presionar se ESCsale del modo de inserción al modo normal, donde puede presionar :para escribir un comando. Presione inuevamente para regresar al modo de inserción y estará listo para comenzar.

No soy un gurú de Vim, por lo que alguien más puede tener más experiencia y ofrecerte otras opciones.

Ricardo Souza
fuente
3
Para la mayoría de nosotros, pero la respuesta aceptada tenía la respuesta al problema específico.
Saul Axel Martinez Ortiz
19

Esto se ha mencionado en otras preguntas , pero ctrl + [es equivalente a ESCen todos los teclados.

begolf123
fuente
Nunca supe eso, útil cuando la tecla de escape no es compatible
shuva
¡Vaya, gracias por esa información! Tmux copiar la secuencia de pulsaciones de teclas ahora tiene mucho más sentido.
Thomas Legris
4

Utilizando jj

En mi caso, la configuración .vimrc (o en gVim está _vimrc) a continuación.

inoremap jj <Esc>   """ jj key is <Esc> setting
StarMomo
fuente
Esta es una reasignación común. Encuentro que tiene un ligero retraso mientras espera la entrada de caracteres adicionales. Alternativamente, reasigne su clave de bloqueo de mayúsculas a esc usando algo como KeyRemap4MacBook en una Macbook: github.com/tekezo/KeyRemap4MacBook
Koobz
Me
3

Viniendo de emacs, descubrí que me gustan las ctrl +teclas para hacer cosas, y en vim descubrí que ambas [ctrl + C]y [alt + backspace]entrarán en modo Normal desde el modo de inserción. Puede intentar ver si alguno de esos funciona para usted.

maxorcista
fuente
2

Para mí, el problema era que estaba en modo grabación . Para salir del modo de grabación presione q. Luego Escfuncionó como se esperaba para mí.

betontalpfa
fuente
1

Puede usar Alt + H, J, K, L para mover el cursor en el modo de inserción.

Khoi Hoang
fuente
1
No, no puedes. Probablemente sea una reasignación de su configuración.
Saul Axel Martinez Ortiz
@SaulAxelMartinezOrtiz sí, puede, aunque técnicamente sale del modo normal, después de lo cual puede moverse en modo normal: p
Fuseteam
0

También hay una solución más para ese tipo de problema, que es bastante raro, creo, y puede experimentarlo, si está utilizando vim en OS X Sierra. En realidad, es un problema con el botón Esc, no con vim. Por ejemplo, no pude salir del video en pantalla completa en youtube usando Esc, pero viví con eso durante unos meses hasta que experimenté el mismo problema con vim.

Encontré esta solución. Si eres lo suficientemente vago como para seguir un enlace externo, apagar Siri y matar el proceso en Activity Monitor ayudó.

adelfa
fuente