Basculez entre les modes de Vim, utilisez les commandes d'édition de base et effectuez des tâches courantes telles que la recherche, le remplacement et la mise en commentaire du code.
Installation
Vim est préinstallé sur la plupart des systèmes Linux. Exécutez vim --version pour vérifier la version installée. Cette rubrique utilise Vim 8.0 à titre d'exemple. Les commandes et fonctionnalités peuvent différer selon les versions.
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Aug 10 2022 11:26:47)
Included patches: 1-1763
Modified by OpenAnolis Community
Compiled by OpenAnolis Community
Enormous version without GUI. Features included (+) or not (-):
+acl +farsi +mouse_sgr -tag_any_white
......
Changement de mode
Exécutez vim filename pour ouvrir un fichier en mode Normal. Si le fichier n'existe pas, Vim le crée. Le tableau suivant décrit chaque mode et explique comment basculer entre eux.
|
Mode |
Fonction |
Changement de mode |
|
Mode Normal (Normal Mode) |
Copier, coller et supprimer des caractères ou des lignes. |
|
|
Mode Insertion (Insert Mode) |
Insérer des caractères à la position du curseur. |
En mode Normal, appuyez sur Remarque
Lorsque le mode Insertion est actif, |
|
Mode Remplacement (Replace Mode) |
Remplacer les caractères à la position du curseur. |
En mode Normal, appuyez sur Remarque
Lorsque le mode Remplacement est actif, |
|
Mode Visuel (Visual Mode) |
Sélectionner du texte. Les commandes telles que copier, remplacer et supprimer s'appliquent uniquement au texte sélectionné. |
En mode Normal, appuyez sur Remarque
Lorsque le mode Visuel est actif, |
|
Mode Commande (Command Mode) |
Rechercher et remplacer des chaînes, afficher les numéros de ligne, enregistrer les modifications et quitter. |
En mode Normal, appuyez sur |
Commandes de base
Ouverture de fichiers
vim filename: Ouvre un fichier en mode Normal. Si le fichier n'existe pas, Vim le crée.-
vim filename1 filename2: Ouvre plusieurs fichiers.Vim ouvre d'abord
filename1. Enregistrez avec:w, puis exécutez:bnpour basculer versfilename2. Enregistrezfilename2avec:w.:bp: Bascule vers le fichier précédent.:ls: Liste tous les fichiers ouverts.
:open filename3: Ouvre un nouveau fichier en mode Commande. Enregistrez d'abord le fichier actuel avec:w.
Déplacement du curseur
-
En mode Normal
Flèche haut /
k: Déplacer vers le haut.Flèche bas /
j: Déplacer vers le bas.Flèche gauche /
h: Déplacer vers la gauche.Flèche droite /
l: Déplacer vers la droite.
-
En mode Insertion
Utilisez uniquement les touches fléchées.
Insertion de contenu
En mode Normal, appuyez sur i,I,a,A,o,O pour passer en mode Insertion :
i: Insérer avant le curseur.I: Insérer au début de la ligne.a: Insérer après le curseur.A: Insérer à la fin de la ligne.o: Ouvrir une nouvelle ligne en dessous.O: Ouvrir une nouvelle ligne au-dessus.
Copie et collage
En mode Normal :
yy: Copie la ligne actuelle. Collez avecp.nyy: Copienlignes à partir de la ligne actuelle. Par exemple,2yycopie deux lignes.p: Colle sous le curseur.P: Colle au-dessus du curseur.
Suppression
-
En mode Normal
x: Supprime le caractère situé sous le curseur.dd: Supprime la ligne actuelle. Collez avecp.dk: Supprime la ligne actuelle et la ligne au-dessus.dj: Supprime la ligne actuelle et la ligne en dessous.dG: Supprime de la ligne actuelle jusqu'à la fin du fichier.nx: Supprimencaractères à partir du curseur.ndd: Supprimenlignes à partir de la ligne actuelle. Collez avecp.
-
En mode Insertion
Utilisez
Deletepour supprimer des caractères.
Recherche
En mode Normal
-
/text: Recherchetext. Par défaut, la recherche respecte la casse. Appuyez sur Entrée pour mettre en surbrillance les correspondances.Pour une recherche insensible à la casse, exécutez
:set ignorecase. Pour rétablir la sensibilité à la casse, exécutez:set noignorecase.
n: Correspondance suivante.N: Correspondance précédente.
Remplacement
-
En mode Normal
r: Remplace le caractère situé sous le curseur.R: Passe en mode Remplacement pour un remplacement continu. Appuyez surEscpour quitter.cc: Supprime la ligne actuelle et passe en mode Insertion.:%s/oldtext/newtext/g: Remplace toutes les occurrences deoldtextparnewtext. Sans/g, seule la première correspondance par ligne est remplacée.
-
En mode Insertion
Supprimez l'ancien contenu et saisissez le nouveau.
Annulation et rétablissement
En mode Normal
u: Annule la dernière modification.U: Annule toutes les modifications sur la ligne actuelle.Ctrl+r: Rétablit la dernière modification annulée.
Indentation et alignement
-
En mode Normal
>>: Indente la ligne actuelle vers la droite. Indentation par défaut : 8 espaces (une tabulation).<<: Indente la ligne actuelle vers la gauche.
-
En mode Commande
:ce: Centre la ligne.:le: Aligne la ligne à gauche.:ri: Aligne la ligne à droite.
Mise en commentaire du code
Sauvegardez le fichier avant d'effectuer des remplacements à grande échelle, ou utilisez la commande d'annulation (
u) pour corriger les erreurs. Par exemple, exécutezsudo cp /etc/text.txt /etc/text.txt.bakpour sauvegarder un fichier.Comprenez la syntaxe des expressions régulières de Vim pour éviter de supprimer accidentellement du contenu. Dans les expressions régulières Vim,
/doit être échappé sous la forme\/. Entraînez-vous avec des outils tels que Regex101.Ajustez le symbole de commentaire en fonction du langage de programmation.
-
En mode Visuel
-
Mettre en commentaire plusieurs lignes de code consécutives
Sélectionnez les lignes à mettre en commentaire en déplaçant le curseur vers le haut ou le bas.
Appuyez sur
:pour passer en mode Commande. Vim remplit automatiquement:'<,'>, qui cible la plage sélectionnée.Saisissez la commande de remplacement. Par exemple, pour ajouter
#au début de chaque ligne, saisissezs/^/#/et appuyez surEnter.
Mettre en commentaire tout le code :
:%s/^/#/gajoute#au début de chaque ligne.
-
-
En mode Insertion
Saisissez manuellement les symboles de commentaire pour mettre le code en commentaire.
Enregistrement et sortie
Enregistrer :
:wQuitter :
:qEnregistrer et quitter :
:wq,:xouZZForcer la sortie sans enregistrer :
:q!Forcer l'enregistrement et la sortie :
:wq!
Chiffrement des documents
vim -x filename: Ouvre un fichier avec chiffrement. Définissez un mot de passe, puis enregistrez le fichier pour que le chiffrement prenne effet. Les ouvertures suivantes nécessitent le mot de passe.-
Annuler le chiffrement :
Exécutez
:set key=pour effacer la clé de chiffrement.Enregistrez et quittez avec
:wq.Rouvrez le fichier avec
vim filename. Aucune invite de mot de passe n'apparaît.
Exécution de commandes shell
!pwd: Affiche le répertoire de travail actuel.!ls: Liste les fichiers du répertoire actuel.
Édition multi-fenêtres
vim -o filename1 filename2: Ouvre deux fichiers dans des fenêtres séparées. Quittez chaque fenêtre individuellement.:n: Fenêtre suivante.:N: Fenêtre précédente.
Aide
Exécutez vim --help dans le terminal pour afficher la syntaxe des commandes Vim.
-
En mode Normal
:help: Ouvre le document d'aide de Vim (lecture seule). Quittez avec:q.:help i: Affiche l'aide pouri.:help yy: Affiche l'aide pouryy.:set nu: Affiche les numéros de ligne.
Exemples d'utilisation
Modifier un fichier de configuration
Insérez Location sur la première ligne de example.conf :
Exécutez
vim example.confpour ouvrir le fichier.Placez le curseur sur le premier caractère et appuyez sur
ipour passer en mode Insertion.Saisissez
Locationet appuyez sur Entrée pour commencer une nouvelle ligne.Appuyez sur
Escpour revenir au mode Normal.-
Saisissez
:wqpour enregistrer et quitter.
Insérer du contenu sur une ligne cible
Insérez # au début de la ligne 10 dans example.conf :
Exécutez
vim example.confpour ouvrir le fichier.Exécutez
:10pour déplacer le curseur vers la ligne 10.Appuyez sur
ipour passer en mode Insertion.Saisissez
#.Appuyez sur
Escpour revenir au mode Normal.-
Saisissez
:wqpour enregistrer et quitter.
Rechercher et insérer du contenu
Dans example.conf, insérez LoadModule rewrite_module modules/mod_rewrite.so après Include conf.modules.d/*.conf :
Exécutez
vim example.confpour ouvrir le fichier.Recherchez la ligne cible :
/Include conf.modules.d/*.confAppuyez sur
ipour passer en mode Insertion.Saisissez
LoadModule rewrite_module modules/mod_rewrite.so.Appuyez sur
Escpour revenir au mode Normal.-
Saisissez
:wqpour enregistrer et quitter.
Supprimer du contenu
Dans example.conf, supprimez # du début de la ligne #Listen 12.34.XX.XX:80 et supprimez la ligne Listen 80 :
Exécutez
vim example.confpour ouvrir le fichier.Recherchez la ligne cible :
/#Listen 12.34.XX.XX:80. Le curseur se place sur#.Appuyez sur
xpour supprimer#.Déplacez le curseur vers la ligne Listen 80 et appuyez sur
ddpour la supprimer.-
Saisissez
:wqpour enregistrer et quitter.
Modifier Docker.yaml
Créez et modifiez docker-compose.yaml :

Supprimer des commentaires multilignes
-
Supposons que
#se trouve au début d'une ligne, éventuellement précédé d'espaces ou d'indentations :# This is a comment # Another comment # Yet another comment -
Supprimez les commentaires :
:%s/^\s*#\s\?//Détail du motif :
^: Début de ligne.\s*: Tout espace blanc (gère l'indentation).#: Symbole de commentaire.\s\?: Un espace facultatif après#.//: Remplace la correspondance par rien (la supprime).
Cette commande traite l'intégralité du fichier. Résultat :
This is a comment Another comment Yet another comment
Mettre à jour Vim
Si votre version de Vim ne répond pas à vos besoins, mettez-la à niveau à l'aide des commandes suivantes.
Alibaba Cloud Linux 3 et 2
sudo yum update vim
CentOS 7 et 8
sudo yum update vim
Fedora
sudo yum update vim
Ubuntu et Debian
sudo apt upgrade vim
openSUSE
sudo zypper update vim
Dépannage
-
« No write since last change » lors de la sortie :
Cause : Le fichier a été modifié mais non enregistré.
Solution : Enregistrez et quittez avec
:wq, ou ignorez les modifications avec:q!.
-
Impossible de saisir du texte :
Cause : Vous êtes peut-être dans un mode autre que le mode Insertion, tel que le mode Visuel.
Solution : Appuyez sur
Escpour revenir au mode Normal, puis passez en mode Insertion.
-
Impossible d'enregistrer le fichier :
Cause : L'utilisateur actuel ne dispose pas des autorisations d'écriture. Les fichiers de configuration système tels que
/etc/hostset/etc/nginx/nginx.confnécessitent des autorisations de superutilisateur.Solution 1 : Ouvrez le fichier avec
sudo vim example.conf.Solution 2 : Enregistrez avec des privilèges élevés en utilisant
:w !sudo tee %. Vous pouvez également modifier les autorisations ou la propriété du fichier avecsudo chownousudo chmod.
-
Un fichier « .swp » existe :
Cause : Le fichier est ouvert dans une autre session Vim.
Solution : Vérifiez qu'aucun autre terminal n'est en train de modifier le fichier. Si ce n'est pas le cas, trouvez et supprimez le fichier
.swpavecll -a, puis rouvrez le fichier. Vous pouvez également exécuter:recoverpour restaurer à partir du fichier d'échange.