Vim, sa statusbar et les noms de fichier
Vim possède une statusline (barre de statut), dans laquelle on peut placer toute une série d'informations. Personellement, je voulais voir -quelquepart- le nom du fichier édité ... et bien ce sera dans cette statusline.
Je voulais aussi pouvoir récupérer le nom du fichier édité .. afin de l'inclure dans des abbréviations, c'est chose faite aussi.
D'abord merci à gabrielsl sur freenode / #linuxfr qui m'a donné le bon mot clé sur lequel baser ma recherche et le blog de Dimitri -que je ne connais ni dEve ni d'Adam- qui m'a montré l'un ou l'autre exemple.
La barre de status (statusline)
Il me suffit d'ajouter les lignes suivantes à mon fichier ~/.vimrc afin d'activer cette ligne d'état tout le temps (par défaut elle n'est active que lorsque vim ouvre plusieurs fenêtres (split)) et d'y faire afficher ce que je veux.
Extraits de la doc française:set laststatus=2
set statusline=%a\ %F%1*%m%*%10{getfsize(expand('%'))}o
highlight StatusLine term=bold cterm=bold ctermbg=8
- a Position dans la liste des arguments comme dans le titre par défaut ("{courant} of {max}"). Vide si le nombre d'arguments de fichiers vaut 0 ou 1.
- F Chemin absolu du fichier dans le tampon.
- m Drapeau « modifié », le texte vaut " [+]" ou " [-]" si 'modifiable' est désactivé.
- getsize(expand(%)), permet d'avoir la taille du fichier. Lequel ? Celui interprété par %. Cette fonction retourne -1 si le fichier n'existe pas
Le nom de fichier
Le % vu plus haut m'a mis la puce à l'oreille , j'essaie donc un r! echo % et je vois apparaitre le nom du fichier édité. Yes, je vais pouvoir modifier l'une de mes abbréviations. En effet, j'aime utiliser _class lorsque je code en Java afin que vim écrive tout seul, public class {. Si vous êtes attentif, vous remarquez l'absence du nom de la classe ... qui correspond au nom du fichier.
Mon abbréviation devient alors
abbr _class public class
:r!echo %:r<cr><up>A<del><end> { <cr>
Pour conclure, voici mon fichier .vimrc actuel, [html] [txt]