Vi
Un article de SeRoM - Wiki.
Petit Mémo Vi
Sommaire |
[modifier] Commandes Vi
[modifier] Pour diriger le curseur dans Vi, il faut utiliser:
- h j k l À la place des flèches.
- 0 $ Pour se placer au début ou fin de ligne.
- W w B b Pour avancer par mot
- <n>| Pour se déplacer au n-ème char de la ligne.
- H M L Pour passer à la première(H) ligne de l'écran, la ligne du millieu(M) ou la dernière(L).
- <n>H <n>M <n>L Pour arriver x lignes après H M ou L.
- ( ) Pour se déplacer de phrase en phrase haut / bas
- { } Pour se déplacer de paragraphe en paragraphe
[modifier] GoTo
- gg G Pour arriver en début(gg) ou en fin(G) de ficher
- 44G Pour arriver au début de la 44e ligne.
- ^G Affiche les infos sur la position du curseur (Ligne, colonne, ...)
- `` ' ' Retourne à la dernière possition de modification (après emplois d'un GoTo ou un serach)
[modifier] Pour couper remplacer ... :
- cw remplace les char jusqu'à ce que l'on tape enter
- r remplace le char en dessous du curseur par la lettre tapée
- x supprime le char sous le curseur (5x supprime 5char suivants et 3X supprime les 3char précédents)
- dd -> p couper -> coller la ligne (voir Supperssion et Récupération)
- y -> p copier -> coller
- "<a-z>yy pour copier qqch dans un buffer (a-z)
- "<A-Z>yy pour copier qqch à la suite du buffer
- "<a-z>p pour recopier le contenu d'un buffer (a-z)
[modifier] Type d'insertion:
- a insert après le curseur
- i insert au curseur
- c + <déplacement> remplace sur la longeur du remplacement (cw remplace le mot, c$ jusqu'en bout de ligne, c3l les 3char suivants).
[modifier] Supperssion:
- dd supprime la ligne
- dw supprime par mot (ou la fin du mot si curseur est dedans >< db)
- d$, d0, d4h, ...
[modifier] Récupération:
- p colle la dernière suppression
- 3p colle 3x la dernière suppression
- "5p Colle la 5eme suppresion
- "1pu.u.u.u ... pour parcourire le buffer
[modifier] Déplacement view:
- Ctrl + F/B Défile d'un écran Down/Up
- Ctrl + D/U Défile d'un demi-écran Down/Up
- Ctrl + E/Y Défile d'une ligne Down/Up
- zz Place le focus avec le curseur en milleur d'écran
- z- Place le focus avec le curseur en bas d'écran
- z + <Enter> Place le focus avec le curseur en haut d'écran
[modifier] Recherche:
- /Pattern Recherche du pattern vers le bas.
- ?Pattern Recherche du pattern vers le haut.
[modifier] Poser des marqueurs:
- m[a-z] Place le marqueur
- `[a-z] Retourne au marqueur [a-z]
- '[a-z] Retourne au début de ligne indiqué par le marqueur [a-z]
note: Les marqueurs ne sont pas enregistrés dans le fichier, ils ne fonctionne que pendant la session courrante.
[modifier] Replacement:
- :s/<old>/<new>/ Remplace la prochaine occurence de 'old' par 'new' de la ligne
- :s/<old>/<new>/g Remplace toutes les occurences de 'old' par 'new' de la ligne
- :%s/<old>/<new>/g Remplace toutes les occurences de 'old' par 'new' du fichier
- :%s/<old>/<new>/gc Pareil que précédant, mais avec demande confirmation pour chaque remplacement
[modifier] Regex:
- . Remplace 1 char
- <char>* Remplace de 0 à x le char
- ^<pattern> Impose que le pattern commence la ligne
- <pattern>$ Impose que le pattenr termine la ligne
- [<list>] Correspond si dans la liste
- [aeiou] (a e i o u)
- [A-Z] Le - permet de décrire un scoop (de A à Z)
- [^,] Le ^ permet d'exclure un char (tous sauf la virgule)
- [\[] Le \ permet déchaper un des char précédement cité (echape le [)
[modifier] Commande Ex
[modifier] Gestion de fichier
- e<filename> Pour ouvir le fichier filename.
- n Pour passer le focus dun fichier ouvert ver un autre.
- args ar Pour afficher les fichiers ouverts
[modifier] Affichage du fichier
- :<n> Pour affichier la ligne n
- :<n>,<m> Pour afficher les lignes de n à m ou n&m sont soit un chiffre, soit un . (pour la position courrante), soir un $ (pour la fin de fichier).
[modifier] Deplacement copie et autre
- :d Supprime la ligne courante.
- :<lignes>d Supprime les lignes indiquées (12 12,. .-2,20).
- :<lignes>m<dest> Move lines.
- :<lignes>co<dest> :<lignes>t<dest> Copy lines.
[modifier] Exemple:
:20,.+3m$ Déplace les lignes entre la 20em à la courante plus 3(.+3) en fin de fichier($).
[modifier] Note:
diff entre n,+x et n;+x. Dans le 1er cas (,) le +x est calculé à partir dou se trouve le curseur, mais dans le cas du ; le curseur est déplacer à la ligner indiqué par le premier champ (n).
[modifier] Recherche
- :/<pattern> Positionne le curseur et affiche la 1ere ligne où se trouve le pattern
- :g/<pattern> Affiche toutes les lignes contenant le pattern (le curseur se trouve sur la dernière ligne contenant le pattern)
- :g!/<pattern> Affiche toutes les lignes NE contenant PAS le pattern (le curseur se trouve sur la dernière ligne ne contenant pas le pattern)
[modifier] Exemple un peu complex:
- :20,64g/<pattern> Affiche les lignes entre 20 et 64 qui contiennent le pattern.
[modifier] Combinaison de commande
- :exCmd | exCmd Permet d'enchainer 2 commandes ex. Si la 1er commande déplace le curseur, la seconde commande sera excécuté avec à partir du curseur déplacé.
[modifier] Commande Unix in Ex & Vi
- ':!XXX Commencer une commande par un point d'exclamation donne accès a Unix, et permet d'exécuter des commandes Unix en restant dans Vi.

