Se déplacer
Dans la plupart des cas, on peut faire précéder la commande d’un nombre, qui sera le nombre de fois où l’action sera répétée.
Les touches fléchées ou, mieux, h (gauche), j (bas), k (haut), et l (droite).
Touche | Action |
---|---|
w | (word) pour aller de mot en mot. Par exemple 3w pour se déplacer de 3 mots en avant |
b | est l’inverse de w, utile pour se déplacer d’un mot en arrière |
) | pour se déplacer à la phrase suivante, ( pour aller à la suivante. |
$ | pour aller à la fin de la ligne (ou touche “Fin”) |
0 ou ^ | pour revenir au début de la ligne (ou touche “Début” au-dessus de la touche “Fin”) |
f+lettre | positionnera le curseur sur la lettre voulue de la ligne en cours |
F+lettre | fait la même chose mais vers la gauche |
3G | positionne le curseur sur la ligne 3 (pareil avec :3) |
Effacer du texte
Touche | Action |
---|---|
x | efface un caractère |
dd | efface la ligne courante, dw efface un mot. |
d3w | efface 3 mots (à noter que 3dw revient au même) |
d$ ou D | efface la fin de la ligne, d0 efface le début. |
Modifier du texte
Touche | Action |
---|---|
c | (change) efface et se met en mode insertion. Par exemple, cfh efface jusqu’à la lettre h et se met en mode insertion. |
r | remplace la lettre sous le curseur par la prochaine lettre tapée. |
R | pour en remplacer plusieurs change la casse, passe la minuscule en majuscule et vice-versa |
o | insère une nouvelle ligne |
J | permet de joindre 2 lignes |
Recherche
Touche | Action |
---|---|
/mot | va se placer sur la prochaine occurence de “mot” |
n ou / | pour aller au suivant |
? ou N | pour aller au précédent. |
Vi conserve en mémoire les différentes recherches. Taper / puis flèche haut ou bas pour faire défiler l’historique.
Recherche d’un motif
Pattern | Fonction |
---|---|
/bo.te* | cherche boite, boîte, boiter etc… |
/bo[iî]te | cherche boite ou boîte |
Remplacer
Pattern | Fonction |
---|---|
:%s/bo[iî]te/récipient/g | remplace toutes les occurrences boite ou boîte par récipient dans tout le document |
g | pour remplacer toutes les occurrences d’une ligne |
% | (équivalent de 1,$) pour remplacer sur toutes les lignes |
Couper-coller
Quand on efface un texte, celui-ci est automatiquement mémorisé. Pour le déplacer, il suffit de taper p à l’endroit où on veut voir coller ce texte.
Copier se fait avec la commande y (yank). yy copie une ligne, yw copie un mot, etc …
Autres commandes utiles
pour sauvegarder et quitter, taper ZZ
pour sauver :w
pour quitter :q (:q! pour quitter sans sauver)
u undo, annule la dernière action
Ctrl+r pour refaire une action annulée
Insérer plusieurs fois un caractère : 30i[Esc]*
insèrera : \***\***\***\***\***\***\***\***\***\***
:e! ré-ouvre le fichier tel qu’il était à la dernière sauvegarde. Ca permet d’annuler toutes les modifications depuis la dernière sauvegarde.
Raccourcis : Il est possible de définir des raccourcis. Par exemple, en tapant M81, on veut qu’il apparaisse “galaxie d’Andromède”. :ab M81 galaxie d’Andromède.
Pour voir la liste des raccourcis, :ab, pour enlever le raccourci M81, :unab M81
Dans le même genre, la complétion automatique de mots : il suffit de taper le début d’un mot puis Ctrl+p et vi le complète automatiquement par rapport au précédent mot commençant par les mêmes lettres.
» pour décaler le texte vers la droite, « vers la gauche
Petit raffinement : vi http://www.monsite.fr ouvrira en édition la page internet monsite.fr !
Autre
On peut passer des commandes shell tout en restant sous Vi : Ils nous affichera la liste des fichiers du répertoire courant.
Autre truc intéressant : pour insérer le texte d’un autre fichier dans le fichier en cours, faire :r nomdufichier
Et un :r Ils insèrera la liste des fichiers dans le fichier en cours !
:5,10ce 80 centre les lignes 5 à 10 sur 80 colonnes
:right pour aligner à droite et :left pour aligner à gauche
Travailler sur plusieurs fichiers en même temps
:10 split nomdufichier ouvre un écran de 10 lignes avec le fichier en argument.
:new ouvre une fenêtre vide
Ctrl+ww pour changer de fenêtre.
Pour modifier la taille d’une fenêtre, Ctrl+w- la diminue d’une ligne et Ctrl+w+ l’agrandit
:q pour fermer une fenêtre
Ou ouvrir simultanément tous les scripts bash par exemple, *vi .sh puis n pour aller au suivant et N au précédent.