Comment utiliser vim ?

Vous êtes en TD. Vous devez coder un programme en C sur un terminal, et tout est compliqué. Comment faire ?

La réponse: VIM

Vim, pour Vi Improved, est dérivé de Vi, un éditeur de texte peut-être aussi vieux que vos parents. Pourquoi utiliser ce dinosaure ? Parce que c'est le meilleur.
Vim est partout, et savoir l'utiliser c'est comme apprendre à conduire, c'est pas obligatoire, mais c'est vachement pratique. Il suffit de se rappeler que la souris, c'est interdit. Vim est orienté programmation, et considère comme ligne tout les caractères avant un retour à la ligne. Une seule ligne peut remplir tout l'écran si elle est assez longue, un concept assez différent des éditeurs de texte 'classiques'.

La base de la base

Lancer vim peut se faire de deux manières.

vim

ou

vim <nom du fichier>

Le premier ouvre un nouveau fichier, et le second ouvre le fichier dont le nom a été précisé en argument. Facile, non ?

Sauvegarder et SORTIR DE VIM

La question la plus googlée sur l'interweb (ou presque) est la fameuse question:

Comment sortir de vim ?

Eh bien c'est très simple. Tout d'abord, ne touchez à rien. Chaque touche possède sa propre fonction, éviter de toucher à tout comme un enfant de 5 ans facilite la tâche. Vim se lance dans un terminal, il est donc normal qu'il y ait des commandes, non ? Pour écrire une commande, il suffit de taper :; le curseur descend alors, et permet à l'utilisateur d'écrire.

Ainsi:

:w <nom du fichier> permet de sauvegarder votre chef-d'oeuvre;
:q quitte le programme;
:wq ou :x permettent de faire les deux en même temps.

Dans le cas où vous essayez de quitter sans sauvegarder, notemment si la sauvegarde est impossible, la commande magique est:

:q! force l'arrêt du programme.

Connaitre Vim

Une fois vim lancé, rien ne se passe. Que faire ?

Vim possède des modes:

Tous ces modes sont accessibles du mode normal. La touche <ESC> permet de revenir en mode normal depuis n'importe quel mode.

Le mode insertion

Pour entrer dans le mode insertion, on appuie sur i depuis le mode normal. Simple, non ? Un --INSERT-- va apparaître en bas de l'écran. Dans ce mode, tout se passe comme prévu: chaque touche correspond à elle même.

Écrivez ce que vous désirez, et tapez <ESC> pour revenir en mode normal !

La touche i n'est pas la seule à ouvrir le mode normal. On peut utiliser:

Pour en plus effacer, on utilise:

On peut se déplacer très vite en utilisant <ESC>+I et <ESC>+A pour alterner entre le début et la fin d'une ligne.

Le mode visuel

Le mode visuel est accessible en tapant v depuis le mode normal. Dans ce mode, bouger le curseur séléctionne le texte sur lequel il passe. Taper V ouvre le mode visuel en sélectionnant toutes les lignes traversées.

Une fois le texte sélectionné, on a plusieurs options:

Une fois le texte copié/collé, on retourne en mode insertion. Appuyer sur p colle le texte !

Il y a de plus des commandes dérivées:

Le mode normal

Le mode normal est TRUFFE de commandes utiles.

Tout d'abord, si vous faites une erreur, que tout s'efface, que l'ordi explose, u permet de revenir en arrière, to 'undo' comme aiment à dire les rosbifs. Son opposé est <CRTL> + r, ou 'redo'.

Les opérateurs de mouvement

Certaines touches permettent de se déplacer dans le texte. Les commandes basiques sont:

Des déplacement plus avancés sont possibles: