Console : VI

10 Oct. 2006
Auteur : Hyacinthe MENIET
Responsable : TrustRobot
Score ( voter ) :
Connexes : Même auteur | Même responsable | Historique

1. Introduction :

Vi est un éditeur de texte extraordinaire. Il permet l'édition de fichier en mode console. Il a été créé pour l'Unix BSD et est disponible aujourd'hui pour Linux, MS-Windows, les Unices, Mac OS ... Il peut être utilisé en console ou avec une belle interface graphique en GTK+2.

2. Installation et configuration :

2.1 Installation :

Il est probablement déjà installé, dans le cas contraire, la procédure d'installation classique à partir des paquetages de votre distribution suffira. Cependant vous pouvez toujours l'installer à partir des sources. Il vous suffit de télécharger la dernière version de vim ici. L'installation se résume alors à :
tar -xvjpf /où_est/vim-6.3.tar.bz2 cd vim-6.3 echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h echo '#define SYS_GVIMRC_FILE "/etc/gvimrc"' >> src/feature.h ./configure --prefix=/usr --with-features=huge make su -c "make install"
Remarque : si vous avez un server graphique tel que Xfree86 ou xorg, l'interface graphique sera compilée par défaut. De plus, pour connaître l'ensemble des options disponibles pour la compilation, vous pouvez saisir la commande :
./configure --help

2.2 Configuration :

Il vous faudra maintenant créer et éditer un fichier de configuration pour pouvoir exploiter Vi[m] confortablement. Deux solutions sont possibles : créer un fichier vimrc dans /usr/share/vim/ ou bien créer un fichier .vimrc dans le /home/login/ de l'utilisateur. Dans tous les cas, introduisez dans le fichier choisi la configuration suivante :
set nocompatible
set bs=2
set columns=80
set tabstop=8
set wrapmargin=8
set nobk
syntax on
set ruler
set noexpandtab 
Pour en savoir d'avantage, tapez :help dans vim.

3. Utilisation :

Vi a 2 modes qui cohabitent en permanance, pour faciliter la compréhension nous nous placerons dans un premier temps dans un cas concret, tiré d'un fait réel.

3.1 Utilisation par l'exemple :

Voici Luke Skywalker un jeune linuxien (jedi) qui souhaite se mettre a vi (sabre laser), il souhaite dans un premier temps modifier le fichier /etc/fstab. Pour ce faire il ouvre le fichier par vi /etc/fstab dont voici le résultat, il est par défaut en mode commande :
/dev/hda6 swap swap defaults 0 0
/dev/hdb5 swap swap defaults 0 0
/dev/hdb2 / ext3 defaults 1 1
/dev/hdb6 /mnt/softs reiserfs defaults 1 2
/dev/hda4 /mnt/debian reiserfs nouser,noauto,rw,suid,dev,exec,async 0 0
/dev/hda5 /mnt/shared reiserfs defaults 1 2
/dev/hda1 /mnt/slackware reiserfs nouser,noauto,rw,suid,dev,exec,async 0 0
/dev/hdb3 /mnt/Mandriva reiserfs nouser,noauto,rw,suid,dev,exec,async 0 0
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
none /proc/bus/usb usbdevfs defaults 0 0
/dev/scd0 /mnt/cdrom auto user,noauto,nosuid,exec,nodev,ro 0 0
/dev/scd1 /mnt/dvdrom auto user,noauto,nosuid,exec,nodev,ro 0 0
/dev/fd0 /mnt/floppy auto sync,user,noauto,nosuid,nodev,unhide 0 0
~
~
~
~
Read /etc/fstab [READONLY], 15 lines, 958 chars 
Il souhaite modififier la ligne /dev/hdb3 ... pour cela il utilise h = "gauche", j = "bas", k ="haut" , l = "droit" pour se délacer dans le fichier. une fois arrivé sur le mot qui l'intéresse il tape i pour passer en mode insertion. Il lui suffit alors de RAJOUTER la partie qui l'interesse :
/dev/hdb3 /mnt/Mandriva reiserfs nouser,noauto,rw,ro,suid,dev,exec,async 0 0
Problème : il ne peut pas y avoir à la fois ro et rw donc il repasse en mode commande par [Echap] et tape x, plusieurs fois pour supprimer rw :
/dev/hdb3 /mnt/Mandriva reiserfs nouser,noauto,ro,suid,dev,exec,async 0 0
Nouveau problème il a oublié dans quel mode il était, facile ! il presse [Echap] et tape :se smd [enter] Maintenant il veut quitter :q [enter], mais avant il faut sauvegarder :w [enter] il reçoit un message d'erreur !!! normal, il n'est pas root (Dark vador). Triste et confus il décide alors de quitter sans sauvegarder :q! [enter]

3.2 Énumération de diverses commandes :

3.3 Liens :

Voici deux liens proposant une utilisation plus poussée de l'éditeur vi :