Réponses:
Ctrl-Cet Escne sont pas les mêmes dans vi
/ vim
dans la plupart des modes, y compris le mode d'insertion. La différence est de Escdéclencher des abréviations alors que ce Ctrl-cn'est pas le cas. Que cela vous importe ou non dépend du fait que vous ou les plugins que vous utilisez utilisent des abréviations.
Notez qu'il est plus sûr de supposer Escet Ctrl-Cne signifie pas la même chose vim
. Un autre exemple de ce même site est la sortie du mode insertion de bloc (pas en vi
).
Je pense que tu veux dire vim
, non vi
.
Cela fonctionne en effet vim
, bien que je ne l'utilise que si je suis sûr à 100% de ne jamais toucher à un système d'exploitation non Linux. La raison en est que d'autres systèmes d'exploitation peuvent avoir leurs propres implémentations de vi
, qui ne l'implémentent pas, et vous pourriez constater que lors de l'exécution vi
sur ces plateformes, Ctrl-C a son propre comportement traditionnel: interrompre le processus et laisser votre terminal dans un état étrange .
vi
implémentation qui existe encore aujourd'hui et qui ne gère pas Ctrl-C
? Voir ma réponse pour la vraie différence.
Si vous faites référence vim
, il y a une légère différence. CTRL-C
ne vérifie pas les abréviations et ne déclenche pas l' InsertLeave
événement. Ainsi, vous ou les plugins avez défini les autocmd
instructions qui en dépendent InsertLeave
, elles ne seront pas déclenchées.
À partir de la documentation officielle http://vimhelp.appspot.com/insert.txt.html :
<Esc> or CTRL-[ End insert or Replace mode, go back to Normal mode. Finish
abbreviation.
CTRL-C Quit insert mode, go back to Normal mode. Do not check for
abbreviations. Does not trigger the InsertLeave autocommand
event.
Vous pouvez définir un mappage pour CTRL-C
to <esc>
, puis il se déclenchera InsertLeave
.
Type :quit<Enter> to exit Vim
et m'a demandé à Google comment revenir. Frapperi
vous ramène directement au mode insertion.