Parce que vous dites à vim d'exécuter certaines commandes à partir d'un fichier sur lequel vous n'avez peut-être aucun contrôle ou que quelqu'un d'autre aurait pu écrire. Disons que vous prenez quelque chose dans github, et au fond de l'arbre il y a un .vimrc. Si vous vim quelque chose dans ce répertoire et avez set exrc
, vous dites à vim d'exécuter les commandes dans le .vimrc que vous avez obtenu de github. Faites-vous entièrement confiance à la personne qui a créé ce fichier? Parce que vous laissez vim exécuter toutes les commandes qu'il place dans ce fichier. Ou dites que vous êtes sur une machine régulièrement utilisée par plusieurs personnes (ils existent toujours :-)), et que quelqu'un vous demande de regarder quelque chose dans son répertoire personnel (ou / tmp, ou n'importe quel endroit où ils peuvent écrire). Vous cd là-bas, c'est un fichier texte, donc vous faites un vim file
. Avecset exrc
, vous dites également à vim d'exécuter les commandes dans .vimrc dans ce répertoire. Faites-vous entièrement confiance à cet utilisateur, ou dans un répertoire accessible en écriture comme / tmp, à chaque utilisateur qui peut se connecter à cette machine?
set secure
atténue quelque peu le problème en limitant certaines choses qui peuvent être effectuées dans un .vimrc, mais si le .vimrc par répertoire peut être créé pour vous appartenir (comme dans l'exemple github, ou sur une machine multi-utilisateurs où certains utilisateurs peut vous montrer des fichiers), set secure
est ignoré, vous avez donc toujours les mêmes problèmes.