L'éditeur Vim : introduction

Aujourd'hui, je vais vous parler d'un éditeur de texte vraiment puissant qui supporte une infinité de langages de programmation et qui est surtout personnalisable à souhait. J'ai nommé Vim, éditeur qu'on m'a fait découvrir il y a quelques mois maintenant et que je conseille vraiment à tout programmeur. La particularité de cet éditeur, c'est qu'il s'exécute dans un Terminal, ou dans un Invite de commandes si vous êtes sous Windows. Il fait un peu peur au premier abord, mais une fois maîtrisé, vous ne pourrez plus vous en passer, ou presque.

Vim tournant sur Mac OS X

Table des matières

  1. Installation
  2. Les bases
  3. Configuration
  4. Pour aller plus loin...

Installation

Mac OS X

Si vous êtes sous Mac OS X, Vim est préinstallé. Tapez donc tout simplement vim dans un Terminal pour lancer ce dernier.

Linux

Sous Linux, vous avez de grandes chances que Vim soit déjà préinstallé. Essayez de taper vim dans un Terminal pour vérifier. S'il n'est pas installé, installez-le en tapant par exemple sudo apt-get install vim dans un Terminal si vous êtes sur une distribution Debian, comme Ubuntu. Pour d'autres distributions, remplacez apt-get par le gestionnaire de paquets de votre distribution.

Windows

Si vous êtes sous Windows, vous pouvez télécharger et installer Vim à cette adresse. Vous pourrez ensuite le lancer en tapant vim dans l'Invite de commandes ou via l'exécutable gvim.exe.

Les bases

De base, lorsque vous lancez Vim, vous avez la configuration la plus basique possible. Vous ne verrez donc pas de numéros de ligne, pas de possibilité d'utiliser la souris, etc. Je vais vous expliquer comment activer tout ça dans quelques instants.

Pour comprendre le fonctionnement de Vim, il faut savoir qu'il fonctionne avec des modes qu'il faut activer. En effet, si vous tentez maintenant de taper du texte, rien ne se passera (ou en tout cas pas comme vous le voudrez). Les quatre principaux modes de Vim sont les modes commande (dans lequel vous êtes normalement actuellement et vers lequel on peut revenir à tout moment en appuyant sur la touche escape), insertion, visual, visual line et visual block. Il y en a d'autres, mais je n'en ai personnellement jamais eu l'utilité.

Le mode commande

Le mode commande est celui où vous pouvez taper des commandes ou entrer dans un mode plus spécialisé comme les autres cités ci-dessus. Les quatre commandes basiques qui vont seront utiles pour l'instant sont :w (write) pour sauvegarder votre fichier, :q pour quitter et finalement :wq ou :x pour sauvegarder votre fichier et quitter. Comme vous l'avez probablement remarqué, les commandes commencent systématiquement par un deux-points.

Si vous n'avez pas précisé de nom de fichier en ouvrant vim (exemple : vim document.tex), vous devrez passer un nom de fichier en argument lorsque vous voulez sauvegarder votre fichier avec :w ou :wq (exemple : :wq document.tex).

Vous pouvez également utiliser ctrl + f pour descendre d'un écran et ctrl + b pour monter d'un écran, ce qui est beaucoup plus rapide que de naviguer avec les touches fléchées.

Le mode insertion

Le mode insertion est le mode qui vous permettra de taper du texte dans votre document. En mode insertion, tout ce que vous tapez est retranscrit à l'écran, à l'exception de certaines commandes que vous pouvez exécuter à l'aide de la touche ctrl, comme par exemple ctrl + x pour l'autocomplétion. Pour entrer en mode insertion, appuyez sur « i » en mode commande.

Les modes visual, visual line et visual block

Ces trois modes servent à effectuer des sélections. Le mode visual s'obtient en appuyant sur « v » et permet de sélectionner du texte de manière « normale ». Le mode visual line s'obtient quant à lui en appuyant sur shift + v et le mode visual block en appuyant sur ctrl + v. Vous l'aurez sans doute compris : le mode visual line sert à sélectionner des lignes et le mode visual block... des blocs de texte.

Le mode visual block de Vim

Le copier-coller

Pour effectuer un copier-coller dans Vim, il faut d'abord commencer par utiliser un des modes visual pour sélectionner le texte que vous voulez copier. Une fois ce texte sélectionné, appuyez sur y pour copier le texte. Vous pouvez aussi appuyer sur d pour couper le texte ou encore sur c pour couper le texte et entrer en mode insertion. Utilisez ensuite p pour coller le texte derrière votre curseur ou shift + p pour le coller devant ce dernier. Voici un tableau reprenant d'autres opérations de copier/coller possibles :

Commande Opération
yy Copier la ligne entière
dd Couper la ligne entière
cc Couper la ligne entière et
entrer en mode insertion
u Annuler la dernière action
^r Inverse de la commande u
Quelques opérations possibles

Pour une liste beaucoup plus complète d'opérations, je vous invite à aller voir mon cheat sheet Vim que je m'étais fait à mes débuts.

Configuration

Vim se configure dans un fichier texte nommé .vimrc sous Unix. Afin de vous habituer à l'utilisation de Vim, je vous propose d'éditer ce fichier dans Vim lui-même. Ainsi, vous n'aurez même pas besoin de savoir où il se trouve.

Pour commencer, ouvrez donc Vim et tapez la commande suivante :

:e $MYVIMRC

Cette commande ouvrira votre fichier de configuration, il ne vous reste plus qu'à savoir quoi mettre dedans. Voici un exemple de fichier de configuration relativement basique (les guillemets mettent le reste de la ligne en commentaire) :

set mouse=a " Active l'utilisation de la souris (pour Mac OS X, voir plus bas)
set showcmd " Afficher les commandes dans le coin inférieur droit
filetype plugin indent on " Active la détection du type de fichier en fonction de son extension, nécessaire pour la coloration syntaxique et l'indentation automatique
syntax on " Active la coloration syntaxique
set autoindent " Active l'indentation automatique
set spell " Vérification d'orthographe (en anglais)
set nu " Numéros de ligne
set cursorline " Met la ligne où se trouve le curseur en surbrillance
hi CursorLine cterm=NONE ctermbg=7 " Le ctermbg=7 définit la couleur de la surbrillance
set tabstop=4 " Définit la largeur d'un tab à 4 colonnes
set shiftwidth=4 " Définit la largeur que l'indentation automatique doit utiliser
set scrolloff=3 " Permet de toujours laisser trois lignes visibles au-dessus et en-dessous du curseur
set autochdir " Permet à Vim de toujours travailler dans le dossier du fichier ouvert

Si vous êtes sous Mac OS X et que vous avez activé la coloration syntaxique, votre Terminal ne supporte par défaut que 16 couleurs. Pour qu'il puisse afficher 256 couleurs, allez dans les préférences de ce dernier, puis dans l'onget Réglages. Dans cet onglet, sélectionnez votre thème par défaut dans la liste de gauche, puis allez dans l'onglet Avancé. Sélectionnez ensuite xterm-256color dans le menu déroulant à droite de « Déclarer le terminal comme ».

De même, pour activer la souris dans votre Terminal, il vous faudra installer SIMBL et MouseTerm. Cela vous permettra de scroller, cliquer et sélectionner avec votre souris.

J'espère que ce tutoriel vous a plu :-) N'hésitez pas à donner vos impressions ou à poser vos questions dans les commentaires. N'hésitez pas non plus à partager cet article grâce aux trois boutons en bas de ce dernier si vous le souhaitez.

Pour aller plus loin...

J'écrirai dans les semaines à venir un tutoriel un peu plus avancé sur Vim. Il abordera des fonctions de configuration plus avancées, la recherche, comment rechercher et remplacer du texte, etc. J'aborderai également les plugins, qui peuvent apporter des fonctions supplémentaires, comme par exemple un index des méthodes de votre programme, ou un index des sections et sous-sections de votre document LaTeX...

MAJ : vous pouvez trouver mon article sur les fonctions avancées de Vim ici.

Merci d'avoir pris le temps de lire cet article. Si vous l'appréciez, n'hésitez pas à le partager autour de vous.

Si vous le souhaitez, vous pouvez également soutenir l'écriture de ces articles via le bouton Flattr ci-dessous ou en m'offrant une bière.

Vous pouvez également vous abonner ou me suivre sur les réseaux sociaux à l'aide des boutons ci-dessous.

Commentaires

comments powered by Disqus
S'abonner

Si vous souhaitez recevoir un e-mail lors de mes prochaines publications, laissez-moi votre adresse ci-dessous. Elle ne sera jamais divulguée à des tiers.