mardi 1 août 2006
Utiliser la ligne de status
Par Dimitri Robert, mardi 1 août 2006 à 19:20 :: Vim
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 :
%asi vous avez ouvert plusieurs fichiers, affiche le numéro de buffer sous la forme(1 of 4)pour le premier des quatre fichiers ;%tpour le nom du fichier sans le chemin ;%1*ce qui suit est affiché suivant le schéma de colorationUser1jusqu'au prochain motif%*(idem pour%2*etUser2) ;%maffiche[+]lorsque le fichier est modifié et[-]s'il n'est pas modifiable ;%10lle numéro de ligne courante occupant au minimum la place de 10 caractères (c'est juste pour la mise en forme) ;%Lle nombre de lignes du fichier ;%6cle numéro de la colonne courante sur 6 caractères ;%Vle 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.

