Comment savoir quel fichier est actuellement ouvert dans vim?

61

Cela peut sembler trivial, mais à plusieurs reprises, j’ai oublié quel fichier était vimouvert (par exemple, lorsque j’examinais différents fichiers journaux) et le seul moyen de le savoir était de fermer. le fichier et regardez dans l'historique des commandes pour la commande la plus récente.

Existe-t-il une commande dans vim pour vous dire quel fichier vous avez actuellement ouvert sans quitter le programme ou le fichier que vous avez ouvert (par exemple :<which_file_cmd>?)

amphibient
la source
5
Si vous n'avez pas appelé vimavec autant d'arguments, utilisez :args.
41754

Réponses:

76

En plus de la réponse de uprego , vous pouvez appuyer sur Ctrl+ G(en mode normal) pour obtenir le nom du tampon actuel ainsi que le nombre total de lignes qu'il contient et votre position actuelle dans celui-ci.

Mise à jour

Selon le commentaire de rxdazn , vous pouvez appuyer sur 1before Ctrl+ Gpour obtenir le chemin d'accès complet au fichier. Si vous appuyez sur 2, vous obtenez le chemin d'accès complet au fichier et le numéro du tampon que vous avez actuellement ouvert (utile lorsque vous avez ouvert plusieurs fichiers avec vim).

Joseph R.
la source
Comme beaucoup de commandes vim, cela s’applique également à la lesscommande que j’utilise lors de la visualisation de fichiers, par opposition à l’édition.
Jmathew
18
aussi, en appuyant sur 1 avant Ctrl + G vous donne le chemin complet du fichier
rxdazn
23

Quand vimj'utilise toujours la :lscommande.

Exemple

:ls
  1 %a   "blah.txt"                         line 1

blah.txtest le nom du fichier.

slm
la source
20
:f

donne le nom du fichier actuellement ouvert.

mtk
la source
1
brillant et très minimaliste
amphibiente
7

Quand vimn'est pas appelé avec beaucoup d' arguments, :argsest utile.

41754
la source
4
L'autre problème avec ceci est que si le fichier a été ouvert après le lancement de vim, il ne sera pas répertorié.
Patrick
4

Si vous pouvez avoir un fichier de configuration vim par défaut, vous pouvez ajouter un statuslinepour toujours avoir les détails du fichier disponibles. Je comprends que si vous vous connectez constamment à différents serveurs, cela ne vous aidera pas beaucoup. Voici mon un peu complexe tiré de mon .vimrc.

" %F(Full file path)
" %m(Shows + if modified - if not modifiable)
" %r(Shows RO if readonly)
" %<(Truncate here if necessary)
" \ (Separator)
" %=(Right align)
" %l(Line number)
" %v(Column number)
" %L(Total number of lines)
" %p(How far in file we are percentage wise)
" %%(Percent sign)
set statusline=%F%m%r%<\ %=%l,%v\ [%L]\ %p%%

" Change the highlighting so it stands out
hi statusline ctermbg=white ctermfg=black

" Make sure it always shows
set laststatus=2

Et cela ressemble à ceci dans MacVim (mais fonctionne également dans les terminaux). entrez la description de l'image ici

Comme toujours, vous pouvez :help statuslineobtenir plus d’options et de détails. Et checkout Learning Vim the Hard Way ch 17 pour une bonne explication de statusline.

jmathew
la source
J'utilise toujours statusline aussi. +1
Rob
1

Il y a aussi :echo @%, qui vous donne le nom du fichier par rapport au répertoire actuel.

kojiro
la source
1

Il existe d'innombrables façons d'obtenir ce type d'informations, mais si vous voulez quelque chose pour que vous n'ayez qu'à appuyer sur une touche et que le nom du fichier s'affiche, insérez ce qui suit dans votre ~/.vimrc:

map <F4> <ESC>:file<CR>

Cela dit,

bind the `F4' key to the following sequence: Escape-key, :file, Carriage-Return (enter-key)

Et la filecommande, comme cela est probablement évident, renvoie le nom du fichier actuel avec d'autres informations.

Vous pouvez également configurer une ligne d'état de sorte que vous ne fassiez rien d'autre que regarder.

Pour conserver la ligne d'état, insérez toujours les éléments suivants dans votre ~/.vimrc:

set laststatus=2

Cela indique à ViM d'afficher systématiquement une ligne d'état. Les autres options sont 0, pour jamais, et 1uniquement lorsque deux ou plusieurs fenêtres sont ouvertes dans ViM.

Alexej Magura
la source
1

En général, je tape simplement :e et cela me montre le chemin d'accès complet au fichier ainsi que le nombre de lignes et de caractères.

Mise en garde : il rouvre le fichier à partir du disque essentiellement, il est donc plus utile lorsque le fichier est déjà enregistré.

:help :e dit:

                          *:e* *:edit*
Edit the current file.  This is useful to re-edit the
current file, when it has been changed outside of Vim.
This fails when changes have been made to the current
buffer and 'autowriteall' isn't set or the file can't
be written.
David d C e Freitas
la source
1

J'ai mon vimrc j'ai cette cartographie

nnoremap <leader>pfn :echo expand('%:p')<CR>

Donc, si je tape ,pfnou "nom du fichier d'impression", cela renvoie le chemin d'accès complet au fichier.

Philippe
la source