Vim Tutoriel · 3 min read · Nov 16, 2025
Comment accéder au shell ou exécuter des commandes externes depuis Vim

Vim, comme vous le savez peut-être déjà, est un éditeur puissant et riche en fonctionnalités. Ici, chez HowtoForge, nous avons écrit plusieurs tutoriels sur Vim, couvrant son utilisation de base, ses plugins, ainsi que d’autres fonctionnalités utiles. Mais étant donné la multitude de fonctionnalités que Vim offre, nous trouvons toujours quelque chose d’utile à partager avec nos lecteurs.
Dans ce tutoriel, nous allons nous concentrer sur la façon dont vous pouvez exécuter des commandes externes ainsi que sur l’accès à la ligne de commande shell depuis la fenêtre de l’éditeur.
Exécuter des commandes externes dans Vim
Parfois, vous pourriez vouloir exécuter des commandes externes depuis la fenêtre de l’éditeur Vim. Par exemple, envisagez une situation où vous avez ouvert un fichier dans Vim, apporté quelques modifications, et ensuite, en essayant de sauvegarder ces modifications, Vim affiche une erreur disant que vous n’avez pas les permissions suffisantes.
Maintenant, quitter la session Vim actuelle et rouvrir le fichier avec des privilèges suffisants signifierait perdre toutes les modifications que vous avez faites, donc, vous serez d’accord, cela ne serait pas une option dans la plupart des cas. C’est dans des situations comme celles-ci que la capacité d’exécuter des commandes externes depuis l’éditeur est utile.
Nous reviendrons sur le cas d’utilisation ci-dessus plus tard (), mais pour l’instant, comprenons comment vous pouvez exécuter des commandes de base depuis Vim.
Supposons que pendant que vous éditez un fichier, vous souhaitiez connaître le nombre de lignes, de mots et de caractères que contient le fichier. Pour ce faire, en mode commande de Vim, saisissez simplement deux-points (:) suivi d’un point d’exclamation (!) et enfin la commande (‘wc’ dans ce cas) suivie du nom du fichier (utilisez % pour le fichier actuel).
:! wc %Voici un exemple :
Fichier avec la commande susmentionnée prête à être exécutée :

et voici la sortie sur le terminal :
Après avoir terminé de voir la sortie, appuyez sur la touche Entrée et vous serez ramené à votre session Vim.
Cette fonctionnalité peut être vraiment utile dans des situations où, par exemple, vous écrivez un code ou un script, et souhaitez rapidement savoir si le code/script contient des erreurs de compilation ou de syntaxe.
Pour continuer, si le besoin est d’ajouter la sortie au fichier, utilisez la commande ‘:read !’. Voici un exemple :
:read ! wc %La commande ‘read’ insère la sortie de la commande externe sur une nouvelle ligne en dessous de la ligne actuelle dans le fichier en cours d’édition. Si vous le souhaitez, vous pouvez également spécifier un numéro de ligne particulier - la sortie sera ajoutée après cette ligne particulière.
Par exemple, la commande suivante ajoutera la sortie de ‘wc’ après la deuxième ligne du fichier.
:2read ! wc %Remarque : Utilisez ‘$’ pour insérer après la dernière ligne et ‘0’ pour insérer avant la première ligne.
Maintenant, revenons au cas d’utilisation dont nous avons discuté au début (), voici la commande qui vous aidera à sauvegarder le fichier sans avoir besoin de le fermer d’abord (ce qui signifie pas de perte de modifications non sauvegardées) et ensuite l’ouvrir avec, disons, sudo.
:w ! sudo tee %
Accéder au Shell dans Vim
En plus d’exécuter des commandes individuelles, vous pouvez également vous retrouver dans un shell nouvellement lancé depuis Vim. Pour cela, il vous suffit d’exécuter la commande suivante depuis l’éditeur :
:shellou
:shet tapez ‘exit’ lorsque vous avez terminé avec le travail dans le shell - cela vous ramènera à la session Vim d’où vous êtes parti initialement.
La faille à garder à l’esprit
Bien que la capacité d’accéder à un shell ait certainement ses propres utilisations dans le monde réel, elle peut également être utilisée comme une technique d’escalade de privilèges. Comme nous l’avons expliqué dans l’un de nos tutoriels précédents (sur sudoedit), même si vous donnez à un utilisateur un accès sudo pour n’éditer qu’un seul fichier via Vim, il peut lancer un nouveau shell depuis l’éditeur en utilisant cette technique, et pourra alors faire n’importe quoi en tant que ‘root’ ou superutilisateur.
La capacité d’exécuter des commandes externes depuis Vim est une fonctionnalité importante qui peut être utile dans de nombreuses situations (certaines d’entre elles que nous avons mentionnées dans ce tutoriel). La courbe d’apprentissage pour cette fonctionnalité n’est pas raide, donc tant les débutants que les utilisateurs expérimentés peuvent en tirer parti.
Avez-vous utilisé cette fonctionnalité depuis un certain temps maintenant ? Avez-vous quelque chose à partager ? Veuillez laisser vos pensées dans les commentaires ci-dessous. Peut-être êtes-vous également intéressé par la commande tee de Linux.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.