Comment basculer entre le mode commande et le mode insertion dans Vim?


87

Je viens de commencer à utiliser Vim comme IDE. Je l'utilisais comme éditeur de test depuis un moment maintenant, donc je n'ai pas eu à passer très souvent en mode commande. Mais, puisque je programme en Java, je dois passer en mode commande pour créer le fichier, le compiler / l'exécuter ... etc.

Le problème est: j'ai besoin d'un bon moyen de basculer entre les deux modes.

J'ai regardé en ligne et il est dit que la <Esc>clé est censée faire cela, mais cela ne fonctionne pas pour moi (peut-être que ce n'est pas pour gVim? Je ne sais pas pourquoi.)

Je dois appuyer à CTRLOchaque fois pour passer en mode commande; la touche d'échappement fonctionne à partir de ce mode ... elle me ramène au mode insertion. Mais existe-t-il un moyen meilleur ou plus simple de basculer entre le mode commande et le mode insertion?


2
Echap est définitivement la bonne clé pour terminer une insertion. Un insert peut être démarré de différentes manières. I minuscule pour commencer l'insertion à votre curseur, I majuscule pour commencer l'insertion au début de la ligne, etc.
Vaughn Cato

À partir d'un fichier vide, les caractères suivants devraient vous donner un fichier contenant le mot "bonjour": ihello<ESC>:w hello.txt<ENTER>
Vaughn Cato

8
ctrl-[fonctionne comme un substitut à Echap sur de nombreux claviers.
Vaughn Cato

Réponses:


52

On dirait que votre Vim est lancé en mode facile . Voir :help easy.

Cela se produit lorsque Vim est invoqué avec l' -yargument ou as evim, ou peut-être que vous avez un :set insertmodequelque part dans votre .vimrcconfiguration. Trouvez la source et désactivez-la; temporairement, cela peut également être fait via Ctrl+ O :set noim Enter.


Je crois que c'est tout. J'avais activé le mode insertion dans mon fichier. Après l'avoir retiré, la touche d'échappement fonctionne parfaitement. Merci!
Ravish Chawla

8
c'est le mode facile !?
Stachu

5
Vim mode facile, maintenant c'est un oxymore. Est-ce là où il est possible de quitter vim?
Davos

1
@Davos c'est le mode où il est démarré en mode insertion, donc ironiquement c'est un mode où il n'est pas possible de quitter vim: p "mode normal" est bien plus facile juste alt + :, x XD
Fuseteam

115

Appuyez sur pour ESCpasser du mode insertion au mode normal, où vous pouvez appuyer sur :pour saisir une commande. Appuyez à inouveau pour revenir au mode insertion, et vous êtes prêt à partir.

Je ne suis pas un gourou de Vim, donc quelqu'un d'autre peut être plus expérimenté et vous donner d'autres options.


3
Pour la plupart d'entre nous, mais la réponse acceptée avait la réponse au problème spécifique.
Saul Axel Martinez Ortiz

19

Cela a été mentionné dans d' autres questions , mais ctrl + [équivaut à ESCsur tous les claviers.


Je ne savais pas que, utile lorsque la touche d'échappement n'est pas prise en charge
shuva

Wow, merci pour cette information! La séquence de touches de copie Tmux a maintenant beaucoup plus de sens.
Thomas Legris

4

En utilisant jj

Dans mon cas, le paramètre .vimrc (ou dans gVim il est _vimrc) ci-dessous.

inoremap jj <Esc>   """ jj key is <Esc> setting

Il s'agit d'un remappage courant. Je trouve qu'il a un léger retard car il attend l'entrée de caractères supplémentaires. Alternativement, remappez votre clé capslock à esc en utilisant quelque chose comme KeyRemap4MacBook sur un Macbook: github.com/tekezo/KeyRemap4MacBook
Koobz

J'ai trouvé plus facile de remapper l'onglet en esc: 3
Fuseteam

3

Venant d'emacs, j'ai trouvé que j'aime les ctrl +touches pour faire des choses, et dans vim, j'ai trouvé que les deux [ctrl + C]et [alt + backspace]passeront en mode normal à partir du mode d'insertion. Vous pourriez essayer de voir si l'une de ces solutions fonctionne pour vous.


2

Pour moi, le problème était que j'étais en mode enregistrement . Pour quitter le mode d'enregistrement, appuyez sur q. Puis a Esctravaillé comme prévu pour moi.


0

Il existe également une autre solution pour ce genre de problème, qui est plutôt rare, je pense, et vous pouvez en faire l'expérience si vous utilisez vim sur OS X Sierra. En fait, c'est un problème avec le bouton Echap - pas avec vim. Par exemple, je n'ai pas pu quitter la vidéo plein écran sur youtube en utilisant Esc, mais j'ai vécu avec ça pendant quelques mois jusqu'à ce que j'aie rencontré le même problème avec vim.

J'ai trouvé cette solution. Si vous êtes assez paresseux pour suivre un lien externe, éteindre Siri et tuer le processus dans Activity Monitor a aidé.


0

Vous pouvez utiliser Alt + H, J, K, L pour déplacer le curseur en mode insertion.


1
Non, tu ne peux pas. C'est probablement un remappage de votre configuration.
Saul Axel Martinez Ortiz

@SaulAxelMartinezOrtiz oui vous pouvez, bien que techniquement, il quitte le mode normal après quoi vous pouvez vous déplacer en mode normal: p
Fuseteam
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.