UNIX : L'éditeur vi
Qu'est-ce que le Vi ?
Le Vi est un puissant éditeur de texte ASCII sous UNIX. Il est compatible avec une majorité de terminaux, mais peut sembler d'un premier abord assez rébarbatif par l'utilisation du clavier pour toute intervention.
Présentation du vi
Vi dispose de 2 modes :
- un mode commande (mode par défaut)
- un mode de frappe (ajout de texte dans le fichier)
L'appel de vi se fait de la façon suivante :
- vi "fichier" ou fichier est le nom du fichier que l'on veut éditer.
- Si ce fichier existe, alors on peut voir apparaître à l'écran son texte.
Commandes du vi
Conventions:
- n, n1, n2 = nombres quelconques.
- ^X = touche <CTRL> X (X touche quelconque).
- chaîne, chaîne1, chaîne2 = chaînes de caractères.
Passage du mode COMMANDE en mode FRAPPE
- <i>
- Insérer du texte à l'endroit où se trouve le curseur
- <a>
- Ajouter du texte après le curseur
- <I>
- Insérer du texte en début de ligne
- <A>
- Ajouter du texte en fin de ligne
- <o>
- Ajouter une nouvelle ligne sous la ligne courante
- <O>
- Ajouter une nouvelle ligne au dessus la ligne courante
Passage du mode saisie en mode COMMANDE
- <ESC>
- Passer en mode COMMANDE
Commandes de sortie / sauvegarde d'édition:(Mode commande)
- :w
- Sauver le texte
- :w!
- Forcer la sauvegarde
- :q
- Quitter sans modifier
- :q!
- Quitter après une modification que l'on ne désire pas sauvegarder
- :wq
- Sauver et quitter
- :wq!
- Forcer la sauvegarde et quitter
Commandes de Défilement du texte:(Mode commande)
- <h> ou <BAKSPACE>
- Déplacer le curseur vers la gauche
- <j>
- Déplacer le curseur d'une ligne vers le bas
- <k>
- Déplacer le curseur d'une ligne vers le haut
- <:>n <RETURN>
- Positionner le curseur sur la ligne n dufichier.Si n ='$' alors position en fin de fichier
- <CTRL> <F>
- Faire défiler le texte d'une page vers le bas
- <CTRL> <U>
- Faire défiler le texte d'une page vers le haut
Commandes de suppression de texte: (Mode commande)
- <x>
- Supprimer le caractère courant
- <d>
- Supprimer la ligne Courante
- <j>
- Déplacer la ligne située sous la ligne courante vers le dernier caractère de la ligne courante
- n<x>
- Supprimer n caractères à partir du caractère courant
- n<d>
- Supprimer n lignesà partir de la ligne courante
Autres commandes: (Mode commande)
- <u>
- Annuler la dernière commande
- <CTRL> <G>
- Afficher le nombre de ligne et le numéro de la ligne courante
- </> "expression"
- Rechercher la première occurrence de "expression" vers le bas
- </> ou <n>
- Rechercher l'occurrence suivante de "expression"
Commandes de déplacement du curseur (mode commande)
- ^F (Forward)
- Faire défiler d'une page vers le bas
- ^U (Upward)
- Faire défiler d'une page vers le haut
- 0(zéro)
- Positionner le curseur en début de ligne
- L
- Positionner le curseur sur la dernière ligne de la page courante
- M
- Positionner le curseur sur la ligne centrale de l'écran courant
- nG (Go)
- Positionner le curseur sur la ligne n
- H
- Positionner le curseur sur la première ligne de la page courante
- e
- Positionner le curseur au début du mot courant
- E
- Positionner le curseur en fin du mot courant
- nl
- Avancer le curseur de n caractères
- $ (End)
- Avancer le curseur en fin de ligne
- w(word)
- Avancer le curseur d'un mot
- nw
- Avancer le curseur de n mots
- nh
- Reculer le curseur de n caractères
- nW
- Reculer le curseur de n mots
- nj
- Descendre le curseur de n lignes
- nk
- Remonter le curseur de n lignes
Commandes de passage en mode frappe de texte ( à la fin de ces commandes, passage en mode insertion)
- O
- Inserer une ligne blanche au dessus de la ligne courante
- A (Append)
- Ajouter des caractères en fin de ligne
- I (Insert)
- Insérer des caractères en début de ligne
- o
- Ajouter une ligne blanche au dessous de la ligne courante
- a
- Ajouter des caractères après le caractère courant
- i
- Insérer des caractères en avant le caractère courant
Commandes de modification du texte (mode commande)
- J
- Concaténer la ligne courante et la ligne en dessous
- d$ (Del End)
- Supprimer la fin de la ligne courante
- u (Undo)
- Annuler la dernière commande
- nx (ex: 2x)
- Supprimer n caractères
- ndd (ex: 2dd)
- Supprimer n lignes
- dw
- Supprimer de la position courante à la fin du mot courant
- r (suivit du nouveau caractère)
- Remplacer un seul caractère
- R texte <ESC>
- Remplacer plusieurs caractères
- cw chaîne <ESC> (Change Word)
- Remplacer un mot à partir de la position courante
- C chaîne <ESC>
- Remplacer jusqu' à la fin de ligne
Recherche et remplacement de chaîne de caractères (mode commande)
- /chaîne
- Rechercher une chaîne de caractère vers la fin du fichier
- ?chaîne
- Rechercher une chaîne de caractère vers le début du fichier
- n (Next)
- Poursuivre la dernière recherche
- :n1,n2 s/chaîne1/chaine2"/g
- Remplacer lachaîne1 (toutes les occurrences de chaîne1) ,par la chaîne2 depuis la ligne n1 jusqu'à la ligne n2.
Si n2 est égal à $ alors on effectue le remplacement jusqu'à la fin du document.
Utilisation de la mémoire tampon (mode commande)
- Y (Yank)
- Pour copier la ligne courante dans le tampon
- nY
- Pour copier n lignes à partir de la ligne courante dans le tampon
- yw
- Pour copier le mot courant dans le tampon
- y$
- Pour copier la fin de la ligne courante dans le tampon
- p (put)
- Pour ajouter le contenu du buffer au dessous la ligne courante
- P
- Pour insérer le contenu du buffer au dessus de la ligne courante
Autres commandes en vrac
- <CTRL> G
- Pour avoir des informations sur le fichier courant (nom, position courante, fichier modifié ou non, nombre de lignes du fichier)
- :e "fichier" (Edit)
- Pour éditer un autre fichier, après avoir sauvegardé le fichier, courant sans sortir de vi
- :e! "fichier"
- Pour éditer un autre fichier, sans sauvegarder le fichier (abandon des modifications), courant sans sortir de vi
- :q! (quit)
- Pour sortir de vi sans sauvegarder le fichier courant
- vi fic1 fic2 fic3 fic4
- Pour éditer plusieurs fichiers (fic1 fic2 fic3 fic4)
- :n (Next)
- Pour passer au fichier suivant, après avoir sauvegardé le fichier courant
- :n!
- Pour passer au fichier suivant, sans sauvegarder le fichier courant
- :se nu (set numbering)
- Pour afficher le numéro des lignes
- :se nonu
- Pour enlever le numéro des lignes
- :ts=n<RETURN> (Tabulation Size)
- Pour changer le nombre n d'espace (8 par défaut)imprimés par la touche <TAB>
- :se ai
- Pour mettre en place le système d'auto indentation
- :! "programme"
- Pour exécuter depuis vi un programme externe
- : set showmode
- Pour afficher le mode courant de vi (Insertion , Ajout, etc.)
- . (point)
- Pour répéter la dernière commande
- <CTRL> L
- Rafraîchissement de l'écran quand le curseur ne semble pas être placé au bon endroit
Version en cache
15/11/2024 20:14:35 Cette version de la page est en cache (à la date du 15/11/2024 20:14:35) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 19/03/2002, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/unix-editeur-vi.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.