Ernest

Vim

Dernière modification : 2014-10-26 16:41:54

Le logo de vim

Sommaire


Introduction

Ce tutoriel est une première introduction à vim et restera donc général. Ernest propose, depuis des années, un tuto vim rédigé à l'époque par Yom. Ce dernier est toujours disponible mais c'est davantage un ensemble hétéroclite de techniques et de tips qu'une introduction, aussi ai-je décidé de reprendre tout à zéro. Un utilisateur de GNU/Linux passe un temps considérable sur son éditeur favori et savoir utiliser ce dernier est extrêmement profitable.

[ sommaire ] | [ home ]


Un peu d'histoire ...

Durant les années 1970, Unix a connu deux éditeurs de texte : ed de Ken Thompson, plutôt limité, puis vi de Bill Joy dont vim est le descendant direct. Avec l'essor de l'informatique personnelle, de nouvelles machines ont émergé durant les années 1980, notamment l'Amiga de Commodore. C'est pour cette machine que Bram Moolenaar a développé en 1988 la première version de vim (vi improved). Aujourd'hui, vim est disponible sur de très nombreuses machines, parmettant à un utilisateur de pouvoir retrouver "son" éditeur de texte quel que soit son environnement de travail.

[ sommaire ] | [ home ]


Un éditeur modal

Vim est un éditeur modal, c'est-à-dire qu'il se comporte différemment en fonction du mode dans lequel on se trouve. Il existe 6 modes de base.

Le mode normal

Vim démarre en mode normal. Il permet entre autres de copier, couper, coller, déplacer des portions de texte. A partir du mode normal, il est possible d'accéder à tous les autres modes.

Le mode insertion

Pour passer du mode normal au mode insertion, on utilise la touche [i] (comme "insertion"). Ce mode correspond au fonctionnement de la plupart des éditeurs de texte. Dans ce mode, on édite un texte de manière traditionnelle. Pour retourner au mode normal, on appuie sur la touche [ESC].

Le mode ligne de commande

Pour passer du mode normal au mode ligne de commande, on tape d’abord la touche [:] puis la commande souhaitée, par exemple [w] (sauvegarder le fichier courant), [q] (quitter vim) ou encore [/] (faire une recherche). Il faut ensuite appuyer sur la touche [Entrée] pour retourner en mode normal.

Le mode visuel

Ce mode ressemble au mode Normal. Il permet de sélectionner une suite de caractères (touche [v]), un ensemble de lignes (raccourci [maj] + [v]) ou un bloc rectangulaire ([ctrl]+[v]). Une fois la sélection effectuée (elle est affichée en inversion vidéo), on peut leur appliquer des commandes du mode normal. Cela aide à voir avec précision quelle portion du texte sera affectée par les commandes.

Les modes sélection et ex

Ces deux modes sont des variations du mode visuel et du mode ligne de commande. Ils ne seront pas étudiés ici.

[ sommaire ] | [ home ]


Copié/Collé et Cie

Les opérations de copié/collé avec vim ne sont pas particulièrement intuitives quand on est habitué aux éditeurs "classiques".

Copié/Collé d'une ligne en mode commande

Pour copier la ligne sur laquelle se trouve le curseur, on utilise la séquence yy.

Pour coller la ligne qu'on vient de copier, on utilise le P (majuscule).

Coupé/Collé d'une ligne en mode commande

Pour couper la ligne sur laquelle se trouve le curseur, on utilise la séquence dd.

Pour coller la ligne qu'on vient de couper, on utilise le P (majuscule).

Coupé ou Copié plusieurs lignes en mode commande

Pour copier 3 lignes à partir de laquelle où se trouve le curseur, on utilise la séquence 3y.

Pour couper 3 lignes à partir de laquelle où se trouve le curseur, on utilise la séquence 3d.

Pour coller les 3 lignes qu'on vient de copier ou couper, on utilise le P (majuscule).

Copié/Collé en mode visuel

Copier / couper / coller en mode commande est très rapide mais peut poser un problème pour sélectionner lorsqu'il y a de nombreuses lignes (on doit alors les compter avant de copier !) ou lorsqu'on souhaite copier une portion d'une ligne seulement. Dans ce cas, il est plus efficace d'utiliser le mode visuel.

Pour copier / couper une partie d'une ligne en mode visuel, on place le curseur à l'endroit où on souhaite commencer à copier. On appuie sur la touche v, puis on déplace le curseur (avec [w] et [b] ou les flèches du pavé numérique par exemple) jusqu'à la fin de la portion de texte que l'on souhaite copier / couper. On appuie alors sur la touche y (copier) ou d (couper). Il suffit ensuite de se déplacer là où on veut coller le texte et d'appuyer sur P.

[ sommaire ] | [ home ]


Se déplacer

Tous les déplacements du curseur dans vim se font par l'intermédiaire du clavier, en mode normal. Voici le récapitulatif :

Touches Opérations
[w] avancer d'un mot
[b] reculer d'un mot
[h] se déplacer d'un caractère vers la gauche
[l] se déplacer d'un caractère vers la droite
[j] se déplacer d'un caractère vers le haut
[k] se déplacer d'un caractère vers le bas

[ sommaire ] | [ home ]


Enregistrer son travail

L'enregistrement se fait en mode commande, c'est-à-dire que, depuis le mode normal, il faut presser [:] puis la touche correspondante à l'enregistrement. Pour passer en mode normal, il suffit de presser [esc].

Touches Opérations
:w enregistre le fichier sans quitter vim
:wq enregistre le fichier et quitte vim
:q quitte vim sans enregistrer (ne fonctionne pas si le fichier a été modifié
:q! force la fermeture de vim (tous les changements depuis la dernière sauvegarde sont perdus !)

[ sommaire ] | [ home ]


Récapitulatif des touches

Touches Opérations
yy copie la ligne entière sous le curseur
dd coupe la ligne entière sous le curseur
3y copie les 3 lignes en partant de celle qui est sous le curseur
3d coupe les 3 lignes en partant de celle qui est sous le curseur
[w] avancer d'un mot
[b] reculer d'un mot
[h] se déplacer d'un caractère vers la gauche
[l] se déplacer d'un caractère vers la droite
[j] se déplacer d'un caractère vers le haut
[k] se déplacer d'un caractère vers le bas
[v], se deplacer, [y]/ [d], [P] copié / collé en mode visuel
:w enregistre le fichier sans quitter vim
:wq enregistre le fichier et quitte vim
:q quitte vim sans enregistrer (ne fonctionne pas si le fichier a changé depuis la dernière sauvegarde
:q! force la fermeture de vim (tous les changements du fichier depuis la dernière sauvegarde sont perdus !)

[ sommaire ] | [ home ]


Liens utiles

[ sommaire ] | [ home ]


Conclusion

Voilà pour cette brève introduction à vim. Le prochain tutoriel sera consacré à des fonctions plus spécifiques. En attendant, entraînez-vous à copier/coller en mode visuel et mémorisez les touches de déplacements. Un post-it sur le bord pendant quelques temps vous permettra d'utiliser les différentes touches sinon vous risquez d'avoir la flemme d'aller rechercher ce tuto. De toute manière, très rapidement, vous les mémoriserez.

[ sommaire ] | [ home ]