Lorsque vous utilisez vi, vous pouvez quitter le mode d'insertion avec Ctrl+ Cau lieu du plus traditionnel Esc. Y a-t-il des situations où il ne serait pas souhaitable d'utiliser pour les premiers au lieu des seconds? Cela brise-t-il autre chose que les meilleures pratiques?
15
Type :quit<Enter> to exit Vim
et m'a demandé à Google comment revenir. Frapperi
vous ramène directement au mode insertion.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 envi
).la source
Je pense que tu veux dire
vim
, nonvi
.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 devi
, qui ne l'implémentent pas, et vous pourriez constater que lors de l'exécutionvi
sur ces plateformes, Ctrl-C a son propre comportement traditionnel: interrompre le processus et laisser votre terminal dans un état étrange .la source
vi
implémentation qui existe encore aujourd'hui et qui ne gère pasCtrl-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 lesautocmd
instructions qui en dépendentInsertLeave
, elles ne seront pas déclenchées.À partir de la documentation officielle http://vimhelp.appspot.com/insert.txt.html :
Vous pouvez définir un mappage pour
CTRL-C
to<esc>
, puis il se déclencheraInsertLeave
.la source