vi
est un des plus anciens éditeurs de texte sous Unix. Certains utilisateurs de Unix ne peuvent pas s'en passer... D'autres trouvent que vi
est beaucoup trop difficile à utiliser... Choisissez votre camp !
vi nom_fichier
i insert insertion avant le curseur I insert insertion au début de la ligne a append insertion après le curseur A append insertion à la fin de la ligne o open ouvre une ligne blanche en dessous de la ligne courante O open ouvre une ligne blanche au dessus de la ligne courante ctrl v insert insertion d'un caractère de contrôle
J concatenate concatène la ligne suivante à la fin de la ligne courante
/\ curseur déplacement d'une ligne vers le haut \/ curseur déplacement d'une ligne vers le bas <= curseur déplacement d'un caractère vers la gauche => curseur déplacement d'un caractère vers la droite w word avance au début du mot suivant b word avance au début du mot précédent e word avance à la fin du mot courant ou suivant ctrl f forward page suivante ctrl b backward page précédente ctrl d forward descend d'une demi-page ctrl u backward monte d'une demi-page ctrl e forward descend d'une ligne ctrl y backward monte d'une ligne ^ ou 0 début de la ligne courante $ fin de la ligne courante G fin du fichier l déplacement d'un caractère vers la droite h déplacement d'un caractère vers la gauche k déplacement d'un caractère vers le haut, même colonne j déplacement d'un caractère vers le bas, même colonne SPACE déplacement d'un caractère vers la droite BACKSPACE déplacement d'un caractère vers la gauche - déplacement vers le début de la ligne supérieure + déplacement vers le début de la ligne inférieure RETURN déplacement vers le début de la ligne inférieure ) déplacement vers le début de la phrase suivante ( déplacement vers le début de la phrase courante ou précédente { déplacement vers le début du paragraphe suivant } déplacement vers le début du paragraphe courant ou précédent
/toutou recherche la chaîne "toutou" à partir de la position actuelle du curseur vers le bas du fichier ?toutou recherche la chaîne "toutou" à partir de la position actuelle du curseur vers le haut du fichier n new recherche la prochaine occurence de la chaîne "toutou" recherche vers le bas du fichier N new recherche l'occurence précédente de la chaîne "toutou" recherche vers le haut du fichier
x suppression du caractère sous le curseur X suppression du caractère précédent le curseur dd delete suppression de la ligne courante D delete suppression du curseur jusqu'à la fin de la ligne yy yank copie la ligne courante dans le buffer p paste colle la ligne contenu dans le buffer après la ligne courante P paste colle la ligne contenu dans le buffer avant la ligne courante ctrl h suppression du caractère à gauche du curseur ctrl w suppression du mot à gauche du curseur ctrl u suppression de la ligne courante Les commandes x, X, dd, et yy peuvent être précédées d'un facteur multiplicateur de leur action. Par exemple 7dd supprimera la ligne courante et les 6 lignes suivantes.
r replace remplace le caractère sous le curseur par un nouveau caractère s replace remplace le caractère sous le curseur par de nouveaux caractères pour terminer appuyer sur la touche <Echap> R replace remplace tous les caractères par de nouveaux caractères pour terminer appuyer sur la touche <Echap> C change remplace depuis le curseur jusqu'à la fin de la ligne par de nouveaux caractères. Pour terminer appuyer sur la touche <Echap> cw change remplace le mot courant par de nouveaux caractères pour terminer appuyer sur la touche <Echap> cc change remplace la ligne courante par de nouveaux caractères pour terminer appuyer sur la touche <Echap>
u undo annule la dernière commande et seulement la dernière . répète répète le changement précédent
Les expressions régulières servent à manipuler le fichier texte dans son ensemble. . représente un caractère quelconque * multiplicateur du caractère précédent ^ début de ligne $ fin de ligne ou fin de fichier % représente de la première à la dernière ligne (abbréviation pour 1,$) \ permet de représenter les caractères . * ^ $ en le mettant devant. Exemple : \* ou \$ \1 permet la réécriture de l'expression régulière lors d'une substitution s commande de substitution d commande de destruction de lignes : passage en mode commande globale g parcours global du fichier ou de la ligne
:1,$s/neant/bof/g de la ligne 1 à la dernière ligne, substitution de la chaîne neant par la chaîne bof :1,$s/neant/bof/ idem mais seulement pour la première occurence de la chaîne neant par ligne :1,3s/^.*=/BRAVO/ de la ligne 1 à la ligne 3, substitution du début de la ligne (^) jusqu'au (.*) caractère = par la chaîne BRAVO :1,$s/B.*O/\1 Veinard/ rajoute aux mots commençant par B et terminant par O, le mot "Veinard" :1,$s/.$// suppression du dernier ($) caractère quel qu'il soit (.) :10,20d suppression des lignes 10 à 20 :g/^#/d suppression des lignes commençant par un # :g/ctrl v ^M/s//ctrl v return/g suppression des ^M en milieu de ligne et substitution par un vrai retour à la ligne. Taper sur "Enter" pour obtenir le 'return'.
:set showmode indique le mode (insertion ou commande) en bas de la fenêtre :set number affiche le numéro de chaque ligne :155 positionne sur la ligne 155 :set filetype=unix transforme le type DOS d'un fichier en type UNIX ctrl l rafraîchit l'écran ctrl g donne des informations (positionnement, nom du fichier, ....) :n édite le fichier suivant si de multiples fichiers ont été donnés en argument de la commande vi
:w write sauvegarde le fichier en cours d'édition :q quit abandonne l'édition :q! quit abandonne l'édition sans sauvegarder le fichier :x exit sauvegarde le fichier en cours d'édition et abandonne l'édition (idem :wq ou ZZ)
man vi
Il existe une version "graphique" de vi
dont le nom est gvim