Commandes basiques
Toutes les commandes qui suivent se font en “mode commande”.
| Commande |
Description |
| :q |
Quitte Vim sans sauvegarder le fichier (si le fichier a été modifié, il suggère de l’enregistrer) |
| :x |
Quitte Vim en sauvegardant le fichier |
| :w |
Enregistre les modifications |
| :wq |
Equivaut à :x |
| :w toto.txt |
Sauvegarde le fichier sous le nom toto.txt |
Il est possible d’ajouter un ! pour forcer l’opération : :q! vous fait sortir de vim sans sauvegarder le fichier. Si vous aviez modifié votre fichier, les modifications sont alors perdues.
Recherche et remplacement de texte
| Commande |
Description |
| /texte |
recherche les occurrences de la chaîne “texte” dans le fichier ouvert. Pour passer d’un élément à un autre, il suffit d’appuyer sur la touche n. |
| :s/erreure/erreur |
remplace sur la ligne où le curseur est positionné la chaîne “erreure” par “erreur” |
| :0,$s/erreure/erreur |
remplace de la 1ère ligne à la dernière ligne du fichier la chaîne “erreure” par “erreur”. Le remplacement est global, il ne se fait pas au cas par cas |
| :s/var/www/var/www/monsite.com |
remplace la chaine “/var/www/” par “/var/www/monsite.com” - l’intérêt ici est de voir l’utilisation de l’antislash () qui permet d’éviter la prise en compte des slashs (/) par sed (le s ). Il traite alors le slash comme un caractère normal et non comme un caractère séparant la chaine à remplacer de sa valeur de remplacement. |
| :g#emacs#d |
La commande g (grep) permet de chercher des lignes et d’appliquer des commandes dessus. Cet exemple efface toutes les lignes contenant la chaîne «emacs» |
| :g#ABC#s/./U&/g |
Cette commande substitue les lignes contenant la chaîne «ABC» par la même ligne en majuscule.(notez l’utilisation de 2 délimiteurs différents pour le grep et le substitute, cela n’est pas obligatoire). |
:0,$s/var\/www/var\/www\/monsite.com
peut s’écrire :
:%s#/var/www#/var/www/monsite.com#g
- Explications :
- %s est un alias de 0,$s
- L’utilisation de # comme caractère de délimitation de l’expression régulière permet d’éviter de backslasher tous les slashs.