Apprendre à utiliser ViM
tux

ViM (Vi amélioré) est un éditeur de texte qui à l'air simpliste mais qui est très puissant à condition de bien l'utiliser. Cette page résume les commandes et les astuces indispensables pour utiliser ViM de manière efficace.

Sommaire disponibles :

  1. Généralités
  2. L'Edition
  3. Les Recherches
  4. La Programmation

Généralités
Paramétrage

ViM est très souple. De nombreux paramètres peuvent être modifiés dans le fichier ~/.vimrc. Il suffit d'y mettre la liste des commandes que l'on veut exécuter au démarrage (une par ligne). Voici un exemple de fichier de configuration avec les explications :

:syntax on    #pour la coloration syntaxique de code
:set ruler    #afficher les coordonnées du curseur
:set showmode #afficher le mode en cours
:set textwidth=120 #nombre de caractères avant retour à la ligne
:set backspace=

Les possibilités sont nombreuses, certaines des commandes données à la suite de cette page fonctionneront.

Déplacement

Le déplacement dans ViM se fait à l'aide des touches de clavier suivantes (le déplacement équivalent est donné en dessous) :

hjkl 0$
 début de la lignefin de la ligne

Ces touches sont considérées comme des commandes par ViM et peuvent recevoir comme argument la répétition. Ainsi, taper 5k permettra de descendre de 5 lignes. Ensuite, pour se déplacer plus loin, les touches suivantes sont utilisées (en Majuscules !) :

GH  LM
der- nière lignehaut de l' écran  bas de l' écranpre- mière ligne

Pour se déplacer de mots en mots, les touches suivantes sont utilisées :

w   b W   B
mot sui- vant   mot précé- dent mot sui- vant   mot précé- dent

La variante en majuscules considère comme mot tout bloc séparé par des espaces alors que les commandes standard considèrent qu'un mot est un bloc de caractères alphanumériques.

L'Edition
Basculer entre les modes de ViM

Lorsqu'on ouvre un nouveau document, on ne peut pas le modifier directement : on est en mode COMMANDE. Pour passer en mode EDITION, deux possibilités : le mode INSERTION et le mode REMPLACEMENT. Voici en bref les touches permettant de basculer d'un mode à l'autre :

iPassage en mode INSERTION (sous le caractère courant)
aPassage en mode INSERTION (après le caractère courant)
rPassage en mode REMPLACEMENT
InserBasculer entre INSERTION et REMPLACEMENT
EchapPassage en mode COMMANDE

 

Effacer

En mode INSERTION ou REMPLACEMENT, on ne peut évidemment plus taper de commandes. Il faut appuyer sur Echap pour retourner en mode commande. On peut alors utiliser les commandes d'effacement suivantes :

Copier / Coller

La touche y est à la base de toute opération de copie :

Une fois quelque chose placé dans le presse-papiers, on peut le coller à volonté en faisant :

Manipuler plusieurs fichiers

Si vous passez plusieurs fichiers en arguments au lancement de ViM, ceux-ci seront tous ouverts. Vous pourrez alors basculer de l'un à l'autre à l'aide des commandes suivantes :

Outre le fait que cela permet de passer d'un fichier à l'autre plus facilement, ceci permet surtout de faire des copier/coller entre fichier facilement. En effet, le presse-papiers est commun à tous les fichiers ouverts.

Enregistrer et Quitter

Pour enregistrer un document ou quitter, il faut repasser en mode COMMANDE. Ensuite, il faut entrer l'une des commandes suivantes :

Pratique

Pour avoir le résultat d'une commande shell sans quitter vim :

Les Recherches

Les recherches sont très simples à faire sous ViM. Pour cela, il suffit simplement de passer en mode commande pour faire une recherche. Ensuite, on tape "/" suivi directement de la chaîne à rechercher. Exemple :

/foo  #Permet de rechercher l'expression "foo"

Le curseur se placera alors sur la première occurence du mot trouvé. Pour continuer la recherche, les touches suivantes permettent de se déplacer dans un sens ou dans l'autre :

Les recherches peuvent se compliquer en utilisant des expressions régulières. Voici un résumé des expressions régulières les plus utiles :

ExpressionDescription
.Tout caractère (même nul)
^Début d'une ligne
\<Début d'un mot
\>Fin d'un mot
[aze]a, z ou e
[a-z]tous les caractères entre a et z
^aze]tous les caractères sauf a, z et e
*0 ou plusieurs fois le caractère précédent
/caractère d'échappement

La syntaxe du remplacement est similaire, elle est de la forme :

s/foo/bar  #Remplacement de "foo" par "bar"
s/foo/bar  #Remplacement de "foo" par "bar" avec confirmation

 

La Programmation

ViM est très adapté à la programmation et dispose de nombreuses options qui permettent d'améliorer la productivité du programmeur et la lisibilité du code.

Les options utiles pour la programmation :

OptionDescription
autoindentConserver l'indentation lors du passage à la ligne
cindentIndentation automatique d'un programme C
lispIndentation automatique d'un programme Lisp
showmatchFait clignoter la parenthèse ouvrante à la fermeture d'une parenthèse
tabstopdéfinit le nombre d'espaces d'une tabulation
syntax [on|off]active/désactive la coloration syntaxique