Kit de survie de l'un des meilleurs éditeurs de texte : Vi et son corollaire Vim


Tout d'abord, pourquoi vi ? Les chances de rencontrer cet éditeur de texte sur tous types de machines Unix - GNU/Linux depuis les années 70 sont suffisamment élevées pour dire que c'est un compagnon fiable en toutes circonstances, à partir du moment où l'on a accès au moins en mode 'terminal' à la machine. Il existe toutefois une version en mode graphique.

La première chose à savoir sur l'éditeur vi : l'utilisateur est soit en mode “édition”, c'est à dire qu'il peut taper son texte, soit en mode “commande” pour provoquer une action (sauvegarde, copier, coller, édition…).

Pour passer du mode “édition” au mode “commande”, il faut appuyer sur la touche [echap] ou [escape]. C'est pourquoi il est commode de garder bien souvent l'index gauche scotché sur cette touche.

Pour ouvrir le fichier 'fichier.txt' :

vi fichier.txt


Commandes de base


Séquences de touchesActions
[esc]passe en mode 'commande' si on y est pas déjà
:n édite le fichier suivant quand plusieurs sont appelés (fichiers*)
:q !force à quitter, sans sauvegarder
:w(write) sauvegarde le fichier ouvert
ZZsauvegarde et quitte
a(append) ajoute une chaîne après le curseur
i(insert) mode 'édition', à partir de la position du curseur
o(open) ouvre une nouvelle ligne sous le curseur, en mode 'édition'
[n] ddsupprime [n] lignes. [n] est un nombre optionnel
[n] yy(yank) mémorise [n] lignes. [n] est un nombre optionnel
rremplace un seul caractère
Rremplace une chaîne de caractères
Dsupprime un fin de ligne, à partir du curseur
[n] dw(delete word) supprime [n] mots. [n] est un nombre optionnel
Cremplace la fin d'une ligne, à partir du curseur
[n] cw(change word) remplace [n] mots
[n] xsupprime [n] caractères. [n] est un nombre optionnel
dGsupprime toutes les lignes jusqu'à la fin, à partir du curseur
mmmarque le début d'un bloc
d'msupprime toutes les lignes depuis le début d'un bloc jusqu'à la position du curseur
y'mcopie toutes les lignes depuis le début d'un bloc jusqu'à la position du curseur
J(join) ramène la ligne suivante au niveau de la ligne courante ; supprime le retour chariot
p(paste) colle le contenu de la zone mémoire en dessous du curseur
P(paste) colle le contenu de la zone mémoire au dessus du curseur
wdéplace le curseur d'un mot
:[n]déplace le curseur sur la ligne [n]
Gdéplace le curseur en fin de fichier
0déplace le curseur en début de ligne
$déplace le curseur en fin de ligne
u(undo) annule la dernière commande
.(c'est un point) répète la dernière commande
/[chaine]recherche la chaîne de caractères « chaine »
nrenouvelle la recherche de chaîne de caractères
:findique le nom du fichier ainsi que la position du curseur
:[n],[m]g/^ *$/dsupprime toutes les lignes blanches entre la ligne [n] et [m]
:[n],[m]s/toto/titi/gremplace ‘toto’ par ‘titi’ entre la ligne n et m
:s:^.*$:xxx/xxx:remplace le début de ligne suivit par n'importe quel caractère jusqu'en fin de ligne par ‘xxx/xxx’


La configuration de Vim

Sur les distributions Debian, Ubuntu, Mint…, le fichier de configuration général de vim se trouve dans le fichier /etc/vim/vimrc.

Quelques paramètres intéressants à activer :

  syntax on               " pour avoir la couleur
  set background=dark
  set showmatch           " Show matching brackets.
  set ignorecase          " Do case insensitive matching
  set smartcase           " Do smart case matching
  set incsearch           " Incremental search

Pour formater simplement du texte, le programme par peut-être utilisé avec bonheur dans Vi. Voici ce qu'il faut ajouter dans le fichier de configuration vimrc, après installation du programme par :

  set shell=/bin/sh
  map ** {!}par 72j
  map *ù {!}par

Pour formater un texte en 72 colonnes, on tape la commande (suffisamment rapidement !) :

  **


~~DISCUSSION~~