Afficher le nom du fichier actuel dans vim?

157

Comment afficher le nom du fichier sur lequel vous travaillez dans vim?

Drew LeSueur
la source
1
Si votre terminal est configuré correctement, vous devriez obtenir le nom de fichier dans le titre de la fenêtre.
Cascabel
2
ctrl + g peut afficher les informations sur le fichier
Dhiren Hamal

Réponses:

200

:f( :file) fera la même chose que <C-G>. :f!donnera une version non tronquée, le cas échéant.

souriant
la source
2
Sympa, mais il est possible de le montrer dans la barre supérieure du terminal? (ou terminator) ou quelque part sans taper une commande.
eMarine le
21
:f!ne fonctionne pas toujours, appuyez sur 1, puis sur Ctrl-G pour le chemin complet.
ives le
1
Que diriez-vous d'un chemin complet? Quand je lance vim à partir de ~/dev/file.pyet exécute :fdans vim, j'obtiens file.pycomme sortie au lieu de ~/dev/file.py.
gxyd
1
@ives que signifient séparément 1 et Ctrl + g?
jobima
2
@jobima: il se modifie ctrl-gpour retourner chemin + fichier. :frenverra le nom de fichier sans chemin, comme cela pourrait être le cas ctrl-g. Un 1avant ctrl-gaffichera le chemin et le nom (pas nécessairement développés cependant). c'est-à-dire qu'il montrera à la ~/dev/file.pyplace de file.py. 2suivie ctrl-gcomprendra que le tampon: buf 1: "~/dev/file.py".
ives le
71

ctrl+ le gfera.

Aussi, j'aime avoir:

set statusline="%f%m%r%h%w [%Y] [0x%02.2B]%< %F%=%4v,%4l %3p%% of %L"

Ce qui produit:

foo.c [C] [0x23] <code / foo.c 1, 1 2% de 50

De plus, comme quelqu'un l'a mentionné (mais maintenant supprimé) %sera remplacé par le nom de fichier actuel. Par exemple:

:! echo "fichier courant:%"
fichier actuel: foo.c
Appuyez sur ENTRÉE ou tapez la commande pour continuer
David Wolever
la source
2
Que signifient les parties [C]et [0x23]?
LangeHaare
@LangeHaare Filetype et valeur hexadécimale du caractère sous le curseur respectivement
'statusline'est une chaîne, mais vous n'incluez pas de guillemets dans l'ensemble: set statuslineset statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ linesnécessite également des espaces d'
échappement
18

définir la ligne d'état. plus d'infos avec:help statusline

Ces commandes peuvent aller dans votre fichier .vimrc, ou vous pouvez les entrer comme commandes dans vim en tapant ':' en mode commande.

Tout d'abord, définissez le dernier état sur 2 en utilisant ce qui suit:

set laststatus=2

Définissez ensuite la ligne d'état sur% f pour le nom de fichier court.

set statusline=%f

Pour le chemin complet du fichier, utilisez% F.

Brian Clements
la source
E518: Option inconnue:% f
Isius
J'ai mis à jour la réponse, Isius. J'espère que cela rend les choses plus claires.
Brian Clements
5

:set title pour afficher le nom du fichier dans la barre de titre de la fenêtre.

Ryan Le
la source
5

Pourquoi si compliqué? Control-G fera le travail

sean
la source
4

Pour afficher le chemin complet de tout fichier, y compris les liens symboliques résolus, utilisez ce qui suit.

:echo resolve(expand('%:p'))

Cela peut être ajouté à votre barre d'état en ajoutant la ligne ci-dessous à votre ~./vimrc

set statusline +=%{resolve(expand('%:p'))}\ %*
joelostblom
la source
2

L'une des suggestions ci-dessus a dû être remplacée par

set statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ lines

pour le faire fonctionner. Aussi

set laststatus=2

a été utilisé.

cucujoidea
la source
Bienvenue dans Stack Overflow ! Cela devrait probablement être une suggestion de modification ou de commentaire sur la ou les réponses pertinentes - vous n'avez pas encore assez de réputation pour commenter ou modifier, mais vous le ferez bientôt si vous posez de bonnes questions et écrivez de bonnes réponses! En attendant, je proposerai les correctifs pertinents aux auteurs des réponses. Bonne prise!
D. Ben Knoble
1

J'utilise l'incroyable vimrcd'Amix: https://github.com/amix/vimrc

Il utilise le lightline.vimbranchement et affiche le nom du fichier sur la barre d'état.

L'avantage d'utiliser le amix/vimrcest que ce plugin s'occupe de la plupart de la personnalisation, il est très stable et a été testé par des milliers de personnes, comme vous pouvez le vérifier en regardant le nombre d'étoiles github .. et les problèmes peu fréquents.

Il est également mis à jour assez fréquemment.

PS: pas l'auteur de l'un ou l'autre des plugins .. juste un fan :)

alpha_989
la source
1

J'avais également besoin de mettre cela dans mon fichier .vimrc:

set noruler
set laststatus=2

Ensuite, je pourrais mettre quelque chose comme set statusline="%f%m%r%h%w [%Y] [0x%02.2B]%< %F%=%4v,%4l %3p%% of %L"dans mon fichier .vimrc et après le redémarrage de mon terminal, la ligne d'état s'affiche correctement.

Alex Fenwood Hughes
la source
'statusline'est une chaîne, mais vous n'incluez pas de guillemets dans l'ensemble: set statuslineset statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ linesnécessite également des espaces d'
échappement