Quelques commandes de Vi
Dans la lignée du post précédent :
Rechercher
| /word | Recherche “word” de haut en bas |
| ?word | Recherche “word” de bas en haut |
| /jo[ha]n | Recherche “john” ou “joan” |
| /\< the | Recherche “the”, “theatre” ou “then” |
| /the\> | Recherche “the” ou “breathe” |
| /\< the\> | Recherche “the” |
| /\< ….\> | Recherche tous les mots de 4 lettres |
| /\/ | Cherche “fred” mais pas “alfred” ou “frederick” |
| /fred\|joe | Recherche “fred” ou “joe” |
| /\<\d\d\d\d\> | Recherche exactement 4 nombres entiers |
| /^\n\{3} | Trouve 3 lignes vides |
| :bufdo /searchstr/ | Effectue une recherche dans tous les fichiers ouverts |
Remplacer
| :%s/old/new/g | Remplace toutes les occurences de “old” par “new” dans le fichier |
| :%s/old/new/gw | Remplace toutes les occurences avec confirmation |
| :2,35s/old/new/g | Remplace toutes les occurences entre les lignes 2 et 35 |
| :5,$s/old/new/g | Remplace toutes les occurences de la ligne 5 à la fin du fichier |
| :%s/^/hello/g | Remplace le début de chaque ligne par “hello” |
| :%s/$/Harry/g | Remplace la fin de chaque ligne par “Harry” |
| :%s/onward/forward/gi | Remplace “onward” par “forward” sans tenir compte de la casse |
| :%s/ *$//g | Supprime les espaces blancs |
| :g/string/d | Supprime toutes les lignes contenant “string” |
| :v/string/d | Supprime toutes les lignes ne contenant pas “string” |
| :s/Bill/Steve/ | Remplace la première occurence de “Bill” par “Steve” dans la ligne courante |
| :s/Bill/Steve/g | Remplace “Bill” par “Steve” dans la ligne courante |
| :%s/Bill/Steve/g | Remplace “Bill” par “Steve” dans tout le fichier |
| :%s/\r//g | Supprime les caractères de retour DOS (^M) |
| :%s/\r/\r/g | Transforme les caractères de retour DOS en retours |
| :%s#<[^>]\+>##g | Supprime les tags HTML en laissant le texte |
| :%s/^\(.*\)\n\1$/\1/ | Supprime les lignes en doublon |
| Ctrl+a | Incrémente le nombre sous le curseur |
| Ctrl+x | Decrémente le nombre sous le curseur |
| ggVGg? | Transforme le texte en Rot13 |
Casse
| Vu | Transforme la ligne en minuscule |
| VU | Transforme la ligne en majuscule |
| g~~ | Inverse la casse de la ligne |
| vEU | Mets le mot en majuscule |
| vE~ | Modifie la casse du mot |
| ggguG | Mets tout le texte en majuscule |
| :set ignorecase | Ignore la casse lors des recherches |
| :set smartcase | Ignore la casse lors des recherches sauf si une majuscule est utilisée |
| :%s/.*/\U& | Mets toutes les lettres en majuscule |
| :%s/.*/\L& | Mets toutes les lettres en minuscule |
| :%s/\<./\u&/g | Mets la première lettre de chaque mot en majuscule |
| :%s/\<./\l&/g | Mets la première lettre de chaque mot en minuscule |
| :%s/.*/\u& | Mets la première lettre de chaque ligne ne majuscule |
| :%s/.*/\l& | Mets la première lettre de chaque ligne en minuscule |
Lecture/Ecriture sur d’autres fichiers
| :1,10 w outfile | Enregistre les lignes 1 à 10 dans outfile |
| :1,10 w >> outfile | Ajoute les lignes 1 à 10 dans outfile |
| :r infile | Insère le contenu de infile |
| :23r infile | Insère le contenu de infile sous la ligne 23 |
Explorateur de fichiers
| :e . | Ouvre l’explorateur de fichiers intégré |
| :Exp | Ouvre l’explorateur de fichiers intégré |
| :Sex | sépare la fenetre et ouvre l’explorateur de fichiers |
| :browse e | Explorateur graphique |
| :ls | Liste les buffers |
| :cd .. | Se déplacer au dossier parent |
| :args | Liste de files |
| :args *.php | Ouvre une liste de fichiers |
| :grep expression *.php | Retourne une liste de fichiers .php contenant expression |
| gf | Ouvre le nom de fichier sous le curseur |
Interaction avec Unix
| :!pwd | Execute la commande unix “pwd” et retourne à vi |
| !!pwd | Execute la commande unix “pwd” et insère la sortie dans le fichier |
| :sh | Quitte temporairement vi |
| $exit | Retourne sous vi |
Alignement
| :%!fmt | Aligne toutes les lignes |
| !}fmt | Align toutes les lignes à la position courante |
| 5!!fmt | Aligne les 5 lignes suivantes |
Onglets
| :tabnew | Crée un nouvel onglet |
| gt | Affiche l’onglet suivant |
| :tabfirst | Affiche le premier onglet |
| :tablast | Affiche le dernier onglet |
| :tabm n(position) | Réarrange les onglets |
| :tabdo %s/foo/bar/g | Execute une commande dans tous les onglets |
| :tab ball | Mets tous les fichiers ouverts dans des onglets |
Partage de fenêtre
| :e filename | Edite filename dans la fenêtre courante |
| :split filename | Divise la fenêtre et charge filename |
| ctrl-w up arrow | Déplace le curseur dans la fenêtre du haut |
| ctrl-w ctrl-w | Déplace le curseur dans la fenêtre suivante |
| ctrl-w_ | Maximise la fenêtre courante |
| ctrl-w= | Donne la même taille à toutes les fenêtres |
| 10 ctrl-w+ | Agrandis la fenêtre courante de 10 lignes |
| :vsplit file | Divise la fenêtre verticalement |
| :sview file | Identique à :split mais en mode lecture seule |
| :hide | Ferme la fenêtre courante |
| |
Fais de la fenêtre courante la seule à l’écran |
| :b 2 | Ouvre le buffer #2 dans cette fenêtre |
Completion
| Ctrl+n Ctrl+p (en insertion) | Compléter le mot |
| Ctrl+x Ctrl+l | Compléter la ligne |
| :set dictionary=dict | Definit dict comme dictionnaire |
| Ctrl+x Ctrl+k | Compléter en utilisant le dictionnaire |
Marqueurs
| mk | Marque la position actuelle |
| ‘k | Déplace le curseur à la marque k |
| d’k | Supprime le texte jusqu’à la marque k |
Abbréviations
| :ab mail mail@provider.org | Définit mail comme abbréviation de mail@provider.org |
Indentation
| :set autoindent | Active l’indentation automatique |
| :set smartindent | Indentation automatique intelligente |
| :set cindent | Règles d’indentation pour programmes en C |
| :set shiftwidth=4 | Défini 4 espaces comme taille d’indentation |
| ctrl-t, ctrl-d | Indente/désindente en mode insertion |
| >> | Indente |
| << | Désindente |
Coloration syntaxique
| :syntax on | Active la coloration syntaxique |
| :syntax off | Désactive la coloration syntaxique |
| :set syntax=perl | Force la coloration syntaxique |