L'éditeur de texte Vim

Introduction

Qui ne connaît pas Vim ? Certainement les utilisateurs de Windows, ou les débutants sous Linux. Vim est un éditeur de texte très puissant, tellement puissant même qu'il faut une période d'apprentissage assez longue et complexe avant d'être efficace avec Vim.

L'utilisation de Vim est très déroutante au début : d'une part, il s'agit d'un éditeur modal, d'autre part, pratiquement toutes les opérations se font en utilisant le clavier. Vous serez peut-être un peu lent au départ, et vous ferez certainement beaucoup d'erreurs. Mais par la suite, si vous persévérez, vous deviendrez de plus en plus efficace et vous travaillerez de plus en plus vite avec Vim ;). Alors faites un effort, ça en vaut vraiment la peine.

Un des grands avantages de Vim : il est multi-plateforme. Il fonctionne sous Linux, sous Windows, sous MacOS, etc. Et c'est très pratique quand on doit changer souvent de système d'exploitation et que l'on doit éditer des fichiers : pas besoin de jongler entre différents éditeurs de textes avec des configurations différentes, des raccourcis différents, etc.

Caractéristiques

Extrait retouché de http://www.vim.org/6k/features.fr.txt


Un éditeur facile a prendre en main
Pour les débutants, Vim est beaucoup plus facile a utiliser que Vi. Il offre en effet une aide en ligne complète, la possibilité d'annulations et de répétitions multiples (peu importe les erreurs, elles sont facilement corrigées), le support de la souris, des icônes configurables et des menus (version GUI).

Codes caractères et terminaux
Vim supporte le jeu de caractères iso-latin1. Par conséquent : aucun problème pour les caractères accentués.

Flexibilité linguistique
Vim permet de taper du texte de droite a gauche (pratique pour écrire par exemple en Arabe, Farsi ou Hébreu). Vim supporte aussi les jeux de caractères multibytes. Il est donc possible d'éditer des textes dans des langues nécessitant des interfaces graphiques, ou les caractères sont représentés par plus d'un byte comme le Chinois, le Japonais ou le Coréen (Hangul). Techniquement, Vim supporte les textes en UTF-8 et Unicode.

Formatage de texte et mode visuel
Avec Vim, vous pouvez sélectionner du texte de façon “visuelle” (mise en surbrillance) avant d'agir dessus c'est-à-dire copier, effacer, substituer, déplacer vers la gauche ou vers la droite, changer la casse, formater le texte y compris conserver les indentations. Vim permet également la sélection et les operations sur des blocs de texte rectangulaires.

Commandes de terminaison automatique
Vim dispose de commandes qui permettent de terminer automatiquement vos saisies de noms de commandes, de noms de fichiers ou même de mots.

Commandes automatiques
Vim offre aussi des commandes pour l'exécution automatique d'instructions (par exemple compression/décompression automatique de fichiers).

Saisie de digraphs
Vim permet de saisir les caractères high-bit par la combinaison de deux caractères (par exemple ”'” et “e” donnent é).

Détection du format de fichier et conversions
Vim reconnaît automatiquement le type de fichier (DOS, Mac, Unix) et vous permet de les sauvegarder dans un format différent. Plus besoin de unix2dos !

Historique
Vim conserve un historique des commandes et des recherches. Vous pouvez ainsi rappeler des commandes précédemment entrées ou des recherches précédemment effectuées pour les éditer.

Enregistreur de macros
Vim offre la possibilité d'enregistrer votre saisie pour la restituer en cas de taches répétitives.

Limites mémoire
Vim a des limitations de mémoire supérieures pour les longueurs de ligne et les tailles de tampons (buffers) que vanilla Vi.

Tampons multiples et partage de l'écran
Vim permet l'édition de tampons multiples. De plus vous pouvez partager l'écran en plusieurs sous-fenêtres (horizontalement ou verticalement) de façon a voir simultanément plusieurs fichiers ou différentes parties d'un même fichier.

Préfixes numériques aux commandes
Vim offre la possibilité de préfixes numériques sur davantage de commandes que vi (par exemple pour la commande “put”).

Fichiers “Runtime” (fichiers d'aide et fichiers syntaxe)
Vim offre 70 fichiers d'aide présentant différents aspects de l'édition de texte, certains de ces fichiers sont spécifiques a un système d'exploitation.

Langage de script
Vim dispose d'un langage de script intègre permettant des extensions faciles.

Recherches hors-champs
Vim permet d'effectuer des recherches hors-champ. Vous pouvez donc placer le curseur *après* le texte trouve.

Récupération de données
Vim permet de stocker les informations sur une session d'édition dans un fichier (“viminfo”) qui leur permet d'être utilisées lors de la session suivante. Ces informations sont la liste des tampons, les signets, les registres et l'historique des commandes et des recherches.

Reformatage des tabulations
Vim peut remplacer automatiquement les tabulations par des espaces (expandtab, :retab).

Système de liens
Vim peut trouver du texte dans des fichiers en utilisant un système d'index et de liens. De nombreuses commandes permettent de gérer cela.

Coloration syntaxique
Vim affiche le texte en couleurs en fonction du langage de programmation. Il est possible de définir soi-même les couleurs. Vim est livre avec plus de 200 fichiers syntaxe pour l'affichage en couleur des langages de programmation les plus courants (Ada, C, C++, Eiffel, Fortran, Haskell, Java, Lisp, Modula, Pascal, Prolog, Python, Scheme, Smalltalk, SQL, Verilog, VisualBasic), des programmes de maths (Maple, Matlab, Mathematica, SAS), des textes marques (DocBook, HTML, LaTeX, PostScript, SGML-LinuxDoc, TeX, WML, XML), des sorties de programmes (diff, man), des fichiers de configuration (4DOS, Apache, autoconfig, BibTeX, CSS, CVS, elm, IDL, LILO, pine, procmail, samba, slrn), des scripts et configurations shell (shells: sh, bash, csh, ksh, zsh), des langages de script (awk, Perl, sed, yacc), des fichiers systeme (printcap, .Xdefaults) et bien sur des fichiers d'aide et de configuration de Vim.

Integration dans d'autres environnements
Il est possible - de façon optionnelle - d'intégrer Vim avec Perl, Tcl ou Python. Vim peut servir de serveur OLE sous Windows. Vim peut aussi etre installé avec le support X-Windows, ajoutant ainsi des menu configurable et la possibilité d'utiliser la souris.

Captures d'écran

Bien que Vim soit conçu à la base pour être utilisé dans un terminal, il existe une version graphique qui est plus agréable à utiliser quand on travaille dans un environnement graphique comme KDE, GNOME, Windows, ou autre.

Voici quelques captures d'écrans de Vim.

Vue normale Code folding Vue splittée Onglets

Cliquez sur les images pour zoomer.

Quelques informations sur ces captures d'écrans :

  • le thème utilisé est wombat que j'ai légèrement modifié
  • la police utilisée est Terminus

Installation

Linux

Sous Linux, c'est simple, il suffit d'utiliser le gestionnaire de paquets de votre distribution. Reportez-vous donc à la documentation de votre distribution ;).

Ensuite, pour installer ma configuration, exécutez la commande dans votre répertoire personnel :

svn checkout http://desintegr.googlecode.com/svn/config/vim/

Renommez ensuite le répertoire vim créé en .vim.

Enfin, créez les deux liens symboliques suivants dans votre répertoire personnel :

  • .vimrc :
ln -s ~/.vim/vimrc ~/.vimrc
  • .gvimrc :
ln -s ~/.vim/gvimrc ~/.gvimrc

C'est tout, vous pouvez désormais utiliser Vim en tapant la commande gvim1) ou vim2).

Windows

Sous Windows, le plus simple est d'utiliser l'installeur. Il existe deux versions différentes :

Il n'y a pas de grandes différences entre les deux versions. La version Cream possède des runtimes (fichiers de coloration syntaxique, etc.) plus récents que la version officielle et intègre les derniers patchs sortis pour vim.

Une fois l'exécutable récupéré, lancez-le.

Dans les options d'installation, je conseille vivement de décocher la case Install vimrc si vous souhaitez utiliser ma configuration. Si vous n'utilisez pas Visual Studio, vous pouvez également décocher la case Install Vim extension for MS Visual Studio. Sélectionnez ensuite un emplacement pour l'installation. Le nom de cet emplacement doit impérativement se terminer par vim, par exemple : C:\Program Files\vim.

Pour installer ma configuration, copier le dossier vim obtenu par SVN dans le dossier d'installation de Vim. Renommez le ensuite en vimfiles.

Enfin, déplacez les fichiers vimrc et gvimrc du dossier vimfiles dans le dossier d'installation de Vim.

Vous pouvez enfin lancer Vim en utilisant le menu Démarrer ou les icônes créées :).

En option

Correcteur d'orthographe

Vous pouvez installer un dictionnaire pour profiter du correcteur d'orthographe.

Sous Linux, créez un dossier spell dans le répertoire .vim de votre répertoire personnel. Sous Windows, créez un dossier spell dans le répertoire vimfiles du répertoire d'installation de Vim.

Puis placez ces fichiers dans le nouveau dossier spell :

Français

Anglais

Police Terminus

Voici une police très agréable à utiliser pour programmer.

Thème Monokai

Voici un thème sympathique (fond foncé) pour gvim.

Thème Oxygen

Voici un autre thème sympathique (fond clair) pour gvim.

Configuration

Voici ma configuration complète de Vim, elle contient :

  • le fichier vimrc
  • les fichier gvimrc
  • les fichiers ftplugins (filetype plugins3))
  • divers thèmes

Cette configuration possède en plus quelques fonctionnalités sympathiques comme la fermeture automatique des parenthèses et des crochets, l'ajout automatique des caractères spéciaux HTML comme & ou  , la fermeture automatique des tags, quelques raccourcis supplémentaires pour faciliter l'enregistrement des fichiers, etc.

À vous de regarder de plus près ces fichiers ;). Vous pouvez toujours regarder l'aide interne très complète de Vim en tapant :help ou :help sujet. Ou bien si vous avez des questions, vous pouvez toujours me les envoyer par email ou sur la page des messages.

Ma configuration est accessible via SVN en utilisant cette adresse : http://desintegr.googlecode.com/svn/config/vim/

Documentation

Les commandes

Voici une petite description des raccourcis utilisés dans ma configuration.

Mode Commande
Alt-Flèche droiteAller à l'onglet de droite
Alt-Flèche gaucheAller à l'onglet de gauche
Ctrl-SEnregistrer le document
F2Remplacer le mot sous le curseur
F3Remplacer le mot sous le curseur pour tout le document
F5Désactiver la coloration de recherche
F6Activer/désactiver le correcteur d'orthographe
F7Activer/désactiver le retour à la ligne automatique
F8Lancer la commande :make
Mode Insertion
Shift-EnterCréer une nouvelle ligne au dessus de la ligne courante
Ctrl-BackspaceEfface le mot précédent
Ctrl-SEnregistre le document et passe en mode Commande
Mode Visuel
Ctrl-SEnregistre le document et passe en mode Commande
F2Remplacer la sélection sous le curseur
F3Remplacer la sélection pour tout le document

Quelques autres astuces

Général

J'ai ajouté quelques raccourcis clavier pour taper facilement des parenthèses, des crochets, des accolades, ou encore des guillemets. Vous le savez sûrement, ces caractères vont par pairs : (), [], etc. Avec ma configuration, pour taper par exemple rapidement :

int main(int argc, char **argv) {
    printf("Hello world!\n");
    return 0;
}

Vous tapez exactement :
int main((int argc, char **argv<Esc>A {<Enter>printf((""Hello world!\n<Esc>A;<Enter>return 0;<Esc>

Explications :
Quand vous tapez rapidement ((, Vim ne va pas ajouter (( mais va mettre à la place () et va placer automatiquement le curseur au milieu des parenthèses. Une fois habitué, c'est très efficace. Dans un autre éditeur de texte, vous auriez du insérer () puis déplacer le curseur en utilisant les flèches, pas très pratique :|.

Notez que cela fonctionne également avec [[, "", '' et {{.

Et pour avoir le retour à la ligne automatique après insertion d'un {, il suffit de taper {<Enter> et vous obtiendrez ceci :

blabla {
   |
}

où | correspond à la place du curseur.

Divers

| indique la place du curseur.
En gras, ce que vous tapez réellement et dans la boîte de code, ce que Vim affiche réellement.

PHP

  • <?p affiche le tag PHP
<?php
   |
?>
  • <? affiche le shorttag PHP
<? | ?>
  • <= affiche le shorttag « echo » PHP
<?= | ?>

HTML

  • <!D propose un menu de complétion pour la Doctype.
  • < ferme automatiquement la balise et place le curseur au milieu du tag
<|>
  • </ ferme automatiquement le dernier tag ouvert.
  • <!- affiche un commentaire HTML
<!-- | -->
  • & suivi d'autres caractères affiche le caractère au format spécial HTML

Quelques exemples :

&& &amp;
&<Space> &nbsp;
&e= &euro;
&e' &eacute;
&e` &egrave;

Pour avoir la liste complète, regardez le fichier ftplugin/html.vim de ma configuration.

Quelques liens

1) version graphique
2) version console
3) fichiers de configurations spécifiques à certains types de fichiers

Le contenu de cette page est sous contrat Creative Commons.
 
linux/vim/accueil.txt · Dernière modification: 26/10/2008 17:41 par desintegr