Vim Modes · 5 min read · Jan 21, 2026

Modes compatibles et non compatibles dans Vim

Jusqu’à présent, dans nos tutoriels centrés sur Vim, nous avons discuté de la fonctionnalité Modeline de l’éditeur ainsi que de la manière dont l’ensemble de fonctionnalités de Vim peut être étendu à l’aide de plugins. Cependant, comme nous le savons tous, Vim offre une pléthore de fonctionnalités intégrées ; donc pour approfondir la discussion, dans ce tutoriel, nous allons discuter des modes disponibles dans lesquels l’éditeur peut être lancé.

Mais avant de faire cela, veuillez noter que tous les exemples, commandes et instructions mentionnés dans ce tutoriel ont été testés sur Ubuntu 14.04, et la version de Vim que nous avons utilisée est 7.4.

Pour bien comprendre les modes Vim mentionnés ci-dessus, vous devez d’abord comprendre un aspect important du processus d’initialisation de l’éditeur.

vimrc système et local

L’aspect en question est : lorsque Vim est lancé, un fichier ‘vimrc’ au niveau système est recherché par l’éditeur pour effectuer des initialisations par défaut à l’échelle du système.

Ce fichier est généralement situé à l’emplacement $VIM/vimrc sur votre système, mais si ce n’est pas le cas, vous pouvez trouver l’emplacement exact en exécutant la commande :version à l’intérieur de Vim. Par exemple, dans mon cas, voici l’extrait pertinent de la sortie produite par la commande :

...
...
...
fichier vimrc système : "$VIM/vimrc"  
fichier vimrc utilisateur : "$HOME/.vimrc"  
2ème fichier vimrc utilisateur : "~/.vim/vimrc"  
fichier exrc utilisateur : "$HOME/.exrc"  
valeur de secours pour $VIM : "/usr/share/vim"  
...
...
...

Ainsi, le fichier ‘vimrc’ système est effectivement situé à $VIM/vimrc , mais j’ai vérifié que la variable d’environnement $VIM n’est pas définie sur ma machine. Donc dans ce cas - comme vous pouvez le voir dans la sortie ci-dessus - il y a une valeur de secours pour $VIM, qui dans mon cas est */usr/share/vim*. Lorsque j’ai essayé de rechercher ‘vimrc’ à cet emplacement, j’ai constaté que le fichier est présent. Donc c’est mon vimrc système, qui - comme je l’ai mentionné plus tôt - est lu lorsque Vim est lancé.

Après que ce vimrc système soit analysé, l’éditeur recherche un fichier ‘vimrc’ spécifique à l’utilisateur (ou local). L’ordre de recherche pour le vimrc local est : variable d’environnement VIMINIT, $HOME/.vimrc, variable d’environnement EXINIT, et un fichier nommé ‘exrc’. En général, c’est le $HOME/.vimrc ou ~/.vimrc qui existe et est traité comme vimrc local.

De quelle compatibilité parlons-nous

Alors que nous discutons des modes compatibles et non compatibles de Vim, il est bon de savoir quel type de compatibilité ces modes activent et désactivent. Pour cela, il faut d’abord être conscient que Vim est une abréviation de V i IM prové, et comme le nom complet le suggère, l’éditeur est une version améliorée de l’éditeur Vi.

Par amélioré, ce que l’on entend est que l’ensemble de fonctionnalités que Vim offre est plus large que celui de Vi. Pour une meilleure compréhension de la différence entre les deux éditeurs, rendez-vous ici.

Donc, tout en discutant des modes compatibles et non compatibles de Vim, la compatibilité dont nous parlons est la compatibilité de Vim avec Vi. Lorsqu’il est exécuté en mode compatible, la plupart des améliorations et des améliorations de Vim sont désactivées. Cependant, gardez à l’esprit que dans ce mode, Vim n’émule pas simplement Vi - le mode définit essentiellement certaines options par défaut selon la manière dont fonctionne l’éditeur Vi.

Le mode non compatible - inutile de le dire - fait fonctionner Vim sans être compatible avec Vi, rendant toutes ses améliorations/fonctionnalités disponibles à l’utilisateur.

Comment activer/désactiver ces modes ?

Essayez d’exécuter la commande :help compatible dans Vim, et vous devriez voir la syntaxe suivante :

'compatible' 'cp' boolean (par défaut activé, désactivé lorsqu'un |vimrc| ou |gvimrc|  
 fichier est trouvé)

Ainsi, la description indique que le mode compatible est activé par défaut, mais est désactivé lorsqu’un fichier vimrc est trouvé. Mais de quel vimrc parlons-nous ? La réponse est le vimrc local. Plongez dans les détails que la commande :help compatible offre et vous trouverez la ligne suivante, qui devrait clarifier les choses :

Effectivement, cela signifie que lorsqu'un fichier |vimrc| ou |gvimrc| existe, Vim utilisera les valeurs par défaut de Vim, sinon il utilisera les valeurs par défaut de Vi. (*Remarque : Cela ne se produit pas pour le fichier vimrc ou gvimrc à l'échelle du système, ni pour un fichier donné avec l'argument |-u|*).

Donc, ce qui se passe réellement, c’est que chaque fois que Vim est lancé, il analyse d’abord le fichier vimrc système - à ce moment-là, le mode compatible est activé par défaut. Maintenant, chaque fois qu’un vimrc utilisateur (ou local) est trouvé, le mode non compatible est activé. La commande :help compatible-default le rend assez clair :

Lorsque Vim démarre, l'option 'compatible' est activée. Cela sera utilisé lorsque Vim commence ses initialisations. Mais dès qu'un fichier vimrc utilisateur est trouvé, ou un fichier vimrc dans le répertoire courant, ou que la variable d'environnement "VIMINIT" est définie, il sera défini sur 'nocompatible'.

Dans le cas où vous souhaitez remplacer le comportement par défaut et activer le mode non compatible lorsque l’éditeur commence à analyser le fichier vimrc système, cela peut être fait en ajoutant la commande suivante à ce fichier au début :

:set nocompatible

Autres détails utiles

Voici quelques autres détails utiles sur ces modes :

Mais il y a un effet secondaire de définir ou de réinitialiser 'compatible' au moment où un fichier .vimrc est trouvé : Les mappages sont interprétés au moment où ils sont rencontrés. Cela fait une différence lors de l'utilisation de choses comme "". Si les mappages dépendent d'une certaine valeur de 'compatible', définissez ou réinitialisez-le avant de donner le mappage.

Le comportement ci-dessus peut être contourné de ces manières :  
- Si l'argument de ligne de commande "-N" est donné, 'nocompatible' sera utilisé, même lorsqu'aucun fichier vimrc n'existe.  
- Si l'argument de ligne de commande "-C" est donné, 'compatible' sera utilisé, même lorsqu'un fichier vimrc existe.  
- Si l'argument "-u {vimrc}" est utilisé, 'compatible' sera utilisé.  
- Lorsque le nom de l'exécutable se termine par "ex", cela fonctionne comme si l'argument "-C" avait été donné : 'compatible' sera utilisé, même lorsqu'un fichier vimrc existe. Cela a été fait pour faire en sorte que Vim se comporte comme "ex", lorsqu'il est lancé en tant qu'"ex".

D’accord, il est probable que vous ne vous trouviez pas dans une situation où vous devrez activer le mode compatible avec Vi de Vim, mais cela ne signifie pas que vous devriez ignorer le processus d’initialisation de l’éditeur. Après tout, vous ne savez jamais quand cette connaissance pourrait vous être utile.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.