notes·de·pit

Parfois j'apprends à pêcher à des gens qui n'aiment pas le poisson

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. Personnellement, 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 abré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 (lien mort) — que je ne connais ni d’Ève 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.

set laststatus=2
set statusline=%a\ %F%1*%m%*%10{getfsize(expand('%'))}o
highlight StatusLine term=bold cterm=bold ctermbg=8

Extraits de la doc française:

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 abré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. Comme le nom de la classe correspond au nom du fichier, je peux écrire ceci : 

abbr _class public class :r!echo %:r<cr><up>A<del><end> { <cr>

Mon fichier .vimrc se trouve dans ce dépôt.