Dans Vim vous avez sans doute remarqué l'avant dernière ligne de la fenêtre (du terminal), celle juste au dessus de celle utilisée pour saisir des commandes. Quand vous ouvrez un fichier, elle vous informe du nom de ce fichier, du nombre de lignes. Ensuite n'apparaissent que la position courante du curseur (ligne, colonne et colonne virtuelle).
Dans aucun de ces deux cas ce n'est la statusline dont il s'agit. Cette dernière n'apparaît par défaut que lorsque vous avez plus d'un buffer ouvert dans la même fenêtre. Par exemple, lorsque vous ouvrez l'aide en ligne. Tapez :help statusline.
J'ai ressenti le besoin de faire apparaître cette barre en permanence afin d'y afficher les informations dont j'ai besoin. Pour cela ajoutez l'option suivante dans votre .vimrc :
set laststatus=2
Nous allons ensuite remplir cette statusline. Je ne vais pas vous détailler tous les paramètres utilisables, vous les trouverez dans l'aide en ligne. Voici ceux que j'utilise :
set statusline=%a\ %t%1*%m%*%10l/%2*%L%*%6c%V
Allons-y pour les détails :
%a si vous avez ouvert plusieurs fichiers, affiche le numéro de buffer sous la forme (1 of 4) pour le premier des quatre fichiers ;
%t pour le nom du fichier sans le chemin ;
%1* ce qui suit est affiché suivant le schéma de coloration User1 jusqu'au prochain motif %* (idem pour %2* et User2) ;
%m affiche [+] lorsque le fichier est modifié et [-] s'il n'est pas modifiable ;
%10l le numéro de ligne courante occupant au minimum la place de 10 caractères (c'est juste pour la mise en forme) ;
%L le nombre de lignes du fichier ;
%6c le numéro de la colonne courante sur 6 caractères ;
%V le numéro de colonne virtuelle (tient compte de la place réellement occupée par les multi-caractères comme la tabulation, l'espace insécable, etc.)
Attention, les espaces doivent être protégés par un slash. Vous pouvez inclure du texte pour plus de clarté. Par exemple : Ligne\ %l\ sur\ %L.
Les deux schémas de coloration utilisés ponctuellement sont définis ainsi :
highlight User1 cterm=inverse,bold ctermfg=red
highlight User2 ctermbg=blue ctermfg=red
Par défaut la statusline est affichée en couleurs inverses, ce qui donne une barre gris clair lorsque l'on utilise un terminal sur fond noir comme moi. Trop clair pour mes yeux. J'ai donc redéfini les deux schémas de coloration par défaut. Le deuxième est utilisé lorsque vous avez deux buffers dans la même fenêtre, pour le buffer inactif.
highlight StatusLine term=bold cterm=bold ctermbg=4
highlight StatusLineNC term=none cterm=none ctermfg=4
Prochain épisode, nous verrons comment afficher le nombre de colonnes, c'est-à-dire, le nombre de caractères de la ligne courante.