Utilisation de vi
De Linux France.
Manuel de survie...
[modifier] Introduction
[modifier] Présentation
vi offre deux modes de fonctionnement: le mode commande et le mode insertion.
Au démarrage il est en mode commande, qui permet de déplacer le curseur, de parcourir le document et de copier-coller. On le quitte, en entrant du même coup en mode insertion, en utilisant une commande d'insertion ou de modification.
En mode insertion il est possible de saisir du texte. Appuyer sur la touche [ESC] pour revenir en mode commande.
De nombreuses commandes peuvent être préfixées du nombre de répétitions souhaitées, par exemple 5w avance le curseur de 5 mots (words).
[modifier] Commandes et combinaisons de touches
Saisir les combinaisons proposées ci-après telles quelles, seuls les éléments en italiques y sont à interpréter. La première combinaison proposée, par exemple, est :w donc implique de taper sur la touche ':' puis sur la touche 'w'. La combinaison « [CTRL]x » implique quant à elle de maintenir la touche Ctrl enfoncée tout en appuyant sur la touche 'x', puis de les relâcher.
Pour lancer vi en lui demandant de charger (ouvrir) un fichier: vi nom_du_fichier
[modifier] Sauvegarder un fichier - quitter vi
- :w
- sauvegarde le fichier (penser à write)
- :wq
- sauvegarde le fichier et quitte vi (write and quit)
- :q
- quitte vi sans sauvegarder les modifications (quit)
- :e!
- ignore les modifications et recharge le fichier (le point d'exclamation marque l'impératif)
- :q!
- quitte immédiatement, sans rien faire d'autre
- :w nom_de_fichier
- sauvegarde le fichier sous le nom nom_de_fichier
- :w! nom_de_fichier
- remplace le contenu du fichier nom_de_fichier
- ZZ
- sauvegarde si nécessaire, puis quitte
[modifier] Se déplacer dans le document édité
- [CTRL]f
- descend d'une page (forward, en avant)
- [CTRL]b
- remonte d'une page (back, en arrière)
- [CTRL]d
- descend d'1/2 page
- [CTRL]u
- remonte d'1/2 page
- :X
- va à la ligne numérotée X (X est un entier)
[modifier] Déplacer le curseur
- H
- en haut de l'écran
- M
- au milieu de l'écran
- L
- en bas de l'écran (lower, au plus bas)
- h
- décale d'un caractère à gauche
- j
- descend d'une ligne
- k
- monte d'une ligne
- l
- décale d'un caractère à droite
- O
- au début de la ligne
- $
- à la fin de la ligne ('$', dans un motif de regexp, désigne la fin d'une ligne)
- w
- au début du mot suivant (word, mot)
- e
- à la fin du mot suivant (end, fin)
- b
- recule d'un mot (back, retour)
- {
- avance jusqu'au paragraphe suivant
- }
- recule jusqu'au paragraphe précédent
- (
- avance jusqu'à la phrase suivante
- )
- recule jusqu'à la phrase précédente
[modifier] Insérer du texte
- i
- active le mode insertion
- a
- active le mode insertion, un caractère après le curseur (append, ajouter)
- I
- insère au début de la ligne
- A
- insère à la fin de la ligne
- O
- insère une ligne en dessus du curseur et passe en mode insertion (open, ouvrir)
- o
- insère une ligne en dessous du curseur et passe en mode insertion
- [ESC]
- Quitte le mode insertion, revient en mode commande
[modifier] Remplacer du texte
- rx
- remplace le caractère à la position du curseur par x (x remplace ici n'importe quel caractère)
- R
- remplace, avec ce qui sera saisi ([ESC] pour terminer)
- cw
- remplace uniquement le mot à la position du curseur (word, mot) ([ESC] pour terminer)
- cnw
- remplace n mots ([ESC] pour terminer)
- C
- remplace la ligne ([ESC] pour terminer)
[modifier] Supprimer du texte
- x
- supprime un caractère (« faire une croix dessus »)
- dw
- supprime un mot (delete, détruire)
- dnw
- supprime n mots
- dd
- supprime une ligne
- ndd
- supprime n lignes
[modifier] Copier-coller
- Y
- copie une ligne, donc la place dans un tampon, pour pouvoir ensuite la coller (yank, tirer)
- nY
- copie n lignes
- P
- colle les lignes avant le curseur (paste, coller)
- p
- colle les lignes après le curseur
[modifier] Annuler ou répéter des modifications
- u
- annule la dernière modification (undo, défaire)
- U
- annule toutes les modifications effectuées sur la ligne courante
- .
- (un point) répète les dernières modifications
[modifier] Copier-coller de texte dans un fichier
- ma
- marque la position "a" dans le fichier
- mb
- marque la position "b" dans le fichier
- :'a,'b nom_de_fichier
- copie dans le fichier nommé nom_de_fichier le texte situé entre la position "a" et la position "b"
[modifier] Insertion du contenu d'un autre fichier
- :r nom_de_fichier
- insère tout le contenu du fichier nommé nom_de_fichier (read, lire)
[modifier] Rechercher et remplacer
- /motif
- recherche motif en allant vers la fin du document
- ?motif
- recherche motif en allant vers la début du document
- n
- répète la dernière recherche (next, suivant)
- N
- retourne au résultat de la précédente recherche effectuée
- //[RET]
- répète la dernière recherche
- :x,y s/motif/motif2/g
- recherche le motif, en allant de la ligne numérotée x à la ligne y, et la remplace par motif2
- :g/motif/s//motif2/g
- recherche dans tous les fichiers le motif et la remplace par motif2 (global)
- :g/motif/s//motif2/gc
- idem, mais demande une confirmation avant de remplacer
[modifier] Rafraîchir l'affichage
C'était très utile avec les anciens terminaux et les liaisons réseau erratiques provoquant des problèmes d'affichage. Cela ne l'est plus guère.
- [CTRL]l
- (control-L) rafraîchit l'affichage
- %[RET]
- rafraîchit l'affichage et place le curseur en haut
- %
- rafraîchit l'affichage et place le curseur au milieu
- %-
- rafraîchit l'affichage et place le curseur en bas