Editeur VIM

Contenu

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).

ToucheAction
w(word) pour aller de mot en mot. Par exemple 3w pour se déplacer de 3 mots en avant
best 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+lettrepositionnera le curseur sur la lettre voulue de la ligne en cours
F+lettrefait la même chose mais vers la gauche
3Gpositionne le curseur sur la ligne 3 (pareil avec :3)

Effacer du texte

ToucheAction
xefface un caractère
ddefface la ligne courante, dw efface un mot.
d3wefface 3 mots (à noter que 3dw revient au même)
d$ ou Defface la fin de la ligne, d0 efface le début.

Modifier du texte

ToucheAction
c(change) efface et se met en mode insertion. Par exemple, cfh efface jusqu’à la lettre h et se met en mode insertion.
rremplace la lettre sous le curseur par la prochaine lettre tapée.
Rpour en remplacer plusieurs change la casse, passe la minuscule en majuscule et vice-versa
oinsère une nouvelle ligne
Jpermet de joindre 2 lignes

Recherche

ToucheAction
/motva se placer sur la prochaine occurence de “mot”
n ou /pour aller au suivant
? ou Npour 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

PatternFonction
/bo.te*cherche boite, boîte, boiter etc…
/bo[iî]techerche boite ou boîte

Remplacer

PatternFonction
:%s/bo[iî]te/récipient/gremplace toutes les occurences boite ou boîte par récipient dans tout le document
gpour remplacer toutes les occurences 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’aggrandit.

: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.

comments powered by Disqus