Premier éditeur de texte plein écran pour les
systèmes Unix, vi est simple, compact et efficace. Même
s'il n'est pas très convivial, il est utile de le
connaître car, dans les cas d'urgence, vi est souvent le seul
éditeur disponible.
vi est disponible sur tous les O.S. , voir www.vim.org
.
vi est un tout petit éditeur qui rend de grands services quand
on sait l'utiliser. L'apprentissage se fait en 1 heure, voir 45
minutes pour les plus doués :-)
Il vaut mieux perdre 1 heure de son temps que galérer le reste
de sa vie, AMHA.
Il est fourni avec un fichier servant de tutoriel. Il n'y à
qu'à suivre les instructions. Le
fichier en question.
On trouvera ici un script en shell pour éditer plusieurs
fichiers en même temps avec vi : viall
On ne rappelle ici que les principales commandes. Ce n'est pas la
peine de les connaitre toutes. Faites le tutoriel et ne retenez que
celles qui vous servent vraiment. Il sera toujours temps de revenir
à la documentation plus tard.
Commande de lancement:
vi ouvre un fichier non
nommé.
vi pim pam poum
Édition successive des trois fichiers ( :n pour
passer au suivant )
vi -rfic Permet de
récupérer la copie de secours (en cas de
pépin).
vi -Rfic Édition en mode
lecture seule (READ-ONLY)
vi +n fic Ouvre le
fichier en se positionnant directement à la ligne n
Se déplacer dans le texte
Les quatres flèches sont utilisables sur la plupart des
versions, mais il vaut mieux utiliser les touches
[h],
[j],
[k] et
[l].
Les modes de VI
Deux modes : le mode d'insertion et le mode de commande.
Mode insertion
Pour passer en mode insertion:
tapez i ou
[Insert] pour
insérer du texte à l'endroit où se trouve le
curseur,
tapez A pour ajouter du
texte à la fin d'une ligne.
En mode insertion, vous pouvez taper du texte, effacer avec la
touche [Suppr] ou
[Bkspace]. Pour
échapper au mode insertion , tapez
[Esc].
Les commandes de base du mode normal
:q! [Entrée]
pour quitter sans sauver,
:w [Entrée]
pour enregistrer,
:wq [Entrée]
pour enregistrer et quitter,
x efface le
caractère qui se trouve sous le curseur, 4x efface les 4
caractères à partir de la position du curseur,
dd efface la ligne sur
laquelle se trouve le curseur, 6dd efface les 6 lignes
à partir de la position du curseur,
:u[Entrée]
permet d'annuler (ou
:undo).
rx Remplace le
caractère courant par le caractère x
s Remplace le
caractère courant (substitution)
cw Remplace le mot
courant ou suivant ( change word)
cb Remplace le mot
courant ou précédent
S ou
cc Remplace tous les
caractères de la ligne courante
C Remplace la fin de la
ligne courante ( depuis le curseur )
Les commandes de base du mode insertion
a Ajouter du texte
après le curseur
A Ajouter du texte en
fin de ligne courante
i Insérer du
texte avant le curseur
I Insérer du
texte en début de ligne
o
ou O Créer
une ligne vierge sous ou au dessus du curseur
R Remplacer le texte
à partir du curseur
n[s] Supprime n
caractères et passe en mode insertion
[CTRLh] ou
[<-] efface la
lettre précédente
[CTRLw] efface
le mot précédent
[CTRLv][CTRLM]
pour écrire ^M
Effacer du texte
ndd Efface n lignes
à partir de la ligne courante
(dd efface la ligne courante)
D Supprime la fin de la
ligne courante ( depuis le curseur )
nx Efface n
caractères à partir du caractère courant
(x efface juste le
caractère courant)
X Supprime le
caractère juste avant le curseur
ndw
ou ndb Efface les n mots suivants ou
précédents, à partir du mot suivant
d/str Efface tout depuis
le curseur jusqu'à la première occurence
de str
Commandes sur les fichiers
:nfichier Ouvre le
fichier fichier
:q! Quitter vi sans
enregistrer les modifications
ZZ ou
:wq ou
:x Enregistrer et
quitter
:sh Ouvre un shell ;
après avoir tapé exit
dans ce shell, on revient à vi
:filenom Change le nom
du fichier courant, équivalent à "enregistrer sous"
lorsque vous enregistrerez.
:x,yw fichier Enregistre
les lignes x à y dans le fichier fichier
:x,yw>>fichier
Ajoute les lignes x à y à la fin du fichier
fichier
:q Quitter vi
:w Sauvegarde le fichier
courant
:w fic Sauvegarde le
fichier courant dans le fichier fic
:w! fic Force la
sauvegarde du fichier courant dans le fichier fic
Mouvements du curseur
h,
l,
k,j
Déplace le curseur d'un caractère vers
la gauche, la droite, le haut, le bas
nb ou nw
Déplace le curseur de n mots vers la gauche ou
vers la droite.
nG Aller à la
ligne n
CtrlB,
CtrlF ou Page
up, Page down
Ecran précédent, suivant
n| Aller à la
colonne n
zEntrée
Positionner la ligne courante en haut de l'écran
0 ou
| Place le curseur en
début de ligne
^ou _ Place le curseur
sur le premier caractère différent de l'espace et de
la tabulation
$ Place le curseur en
fin de ligne
H Place le curseur en
première ligne de la fenêtre (HEAD)
nH Place le curseur en
nième ligne de la fenêtre en partant du haut
M Place le curseur au
milieu de la fenêtre
L Place le curseur en
denière ligne de la fenêtre
w Place le curseur sur
le premier caractère du prochain mot à droite
b Place le curseur sur
le premier caractère du mot courant puis du
précédent mot à gauche
e Place le curseur sur
le dernier caractère du mot courant puis du prochain mot
à droite
W Place le curseur sur
le premier caractère du prochain mot à droite
B Place le curseur sur
le premier caractère du mot courant puis du
précédent mot à gauche
E Place le curseur sur
le dernier caractère du mot courant puis du prochain mot
à droite
G Se positionner en fin
de fichier
Chercher et copier
/str[Entrée]
Rechercher str
/^str[Entrée]
Chercher la prochaine ligne qui commence avec str
nyy ou
nY Copie n lignes (yy copie
la ligne courante) dans le buffer
y/str Copie depuis le
caractère courant, jusqu'avant str, dans le buffer
ynw Copie n mots
à partir du mot courant, dans le buffer (yw copie le mot
courant)
p ou
P Colle le contenu du buffer
après ou avant le curseur (ou avant ou après la
ligne courant si des lignes ont été
copiées)
:x,yg/chaine/com
Rechercher entre les lignes x et y (optionnel) la chaîne
chaine et exécuter la commande com sur chaque
occurence
Autres commandes :
n<< ou
n>> Indente n lignes
vers la gauche ou vers la droite
rc Remplacer le
caractère sous le curseur par c
~Transforme les
minuscules en majuscules et vice-versa
xp Echange le
caractère courant avec le suivant
d'' Efface tout de la
ligne d'où on est parti par G jusqu'à la ligne
courante
yy Copie la ligne
courante
y'' Copie tout de la
ligne d'où on est parti par G jusqu'à la ligne
courante
:%!sort Trie le fichier
en cours d'édition (%
pour toutes les lignes du fichier,
: c'est une commande)
Les options de configuration
:set [option]
pour activer une option
:set no[option]
pour desactiver une option
:set all affiche toutes
les options et leur valeur
:set affiche toutes les
options qui n'ont pas leur valeur par défaut
:set [option]?
affiche la valeur de l'[option]
Description des options le plus courantes :
Nom
Nom long
Défaut
Description
ai
autoindent
noai
indentation automatique
aw
autowrite
noaw
écriture si besoin avant changement de fichier par
:n
eb
errorbells
eb
chaque message d'erreur est précédé
d'un bip
dir=d
directory
/tmp/
répertoire temporaire
ic
ignorecase
noic
ne fait pas de difference minuscule/majuscule lors des
recherches et des remplacements
magic
magic
utilise les expressions régulières lors des
recherches et des remplacements
nu
number
nonu
numérote les lignes
remap
remap
autorise l'usage des macros dans les macros
ro
readonly
noro
passe le fichier en mode lecture seule
sh=sh
shell
/bin/sh
indique quel shell utiliser
sm
showmatch
nosm
visualise les correspondances {}
()
showmode
noshowmode
affiche le mode actuel sur la ligne du bas
sw=n
shiftwidth
8
fixe à n le nombre d'espaces
de l'indentation
term
affiche le type du terminal
ts=n
tabstop
8
taille d'une tabulation
wm=n
wrapmargin
0
la césure automatique des lignes se fait a
n colonnes du bord droit de la
fenêtre
Le fichier de configuration
Un exemple de fichier $HOME/.exrc :
set autoindent
set number
This site is a
member of WebRing.
To browse visit Here.