Réponses:
Vous pouvez appuyer sur {count}Ctrl-G
:
{count}CTRL-G Like CTRL-G, but prints the current file name with
full path. If the count is higher than 1 the current
buffer number is also given.
Appuyez sur 1suivi de Ctrl+ pour Gafficher le chemin complet du fichier actuel. Si {count}
est supérieur à 1, le nom du tampon sera également affiché.
(Appuyez uniquement sur Ctrl+ pour Gafficher le chemin relatif au répertoire de travail actuel de Vim, comme indiqué par Jasper dans les commentaires.)
Vous pouvez utiliser la commande suivante dans votre .vimrc
pour ajouter le chemin complet à la ligne d'état, de sorte qu'il soit toujours visible:
set statusline+=%F
C-g
par défaut 0C-g
, et 2C-g
affiche également le numéro d’index de la mémoire tampon (à partir de 1).
1C-g
!
Register %
contient le nom du fichier en cours.
Les commandes suivantes peuvent être entrées pour afficher les informations affichées:
:echo @% |" directory/name of file
:echo expand('%:t') |" name of file ('tail')
:echo expand('%:p') |" full path
:echo expand('%:p:h') |" directory containing file ('head')
Si tout ce que vous voulez, c'est afficher le nom du fichier actuel, tapez :f
/ :ls
ou appuyez sur Ctrl- g(pour le chemin complet, appuyez sur 1puis sur Ctrl- g).
En mode insertion, tapez Ctrl- rpuis %pour insérer le nom du fichier actuel.
Les commandes suivantes insèrent dans le tampon des lignes comprenant le chemin d'accès complet des fichiers en cours et des fichiers de remplacement:
:put =expand('%:p')
:put =expand('#:p')
Source: Obtenir le nom du fichier en cours sur vim wikia
Apparenté, relié, connexe:
=expand...
expressions après Ctrl-R
en mode insertion.
Vous pouvez utiliser :!ls %:p
pour obtenir le chemin complet du fichier actuel.
Selon le contexte ex, %
cela signifie soit le contenu du fichier, soit le nom du fichier. Lors du shelling out, il représente le chemin du fichier par rapport au répertoire en cours. La commande ' %:p
' ajoutera le modificateur de chemin d'accès complet au modificateur de nom de fichier %
.
Il existe quelques autres modificateurs de nom de fichier intéressants, tels que:
:~
: Récupère le chemin du fichier par rapport au répertoire personnel (celui-ci ne m'a pas fonctionné pour une raison quelconque):.
: Récupère le chemin du fichier par rapport au répertoire courant ( %
par défaut):r
: Nom du fichier racine. Le nom du fichier sans l'extension.:e
: Extension du fichier.:h
: Split sur /
et retourner la moitié gauche (si je l' édition d' un fichier dans un chemin de /tmp/test.txt
et exécuter %:p:h
retournera/tmp
:t
: Split sur /
et retourner la moitié droite ( à savoir si je suis l' édition d' un fichier dans un chemin de /tmp/test.txt
et exécuter %:p:t
retourneratext.txt
On peut voir le répertoire de travail actuel avec :pwd
. Bien entendu, il ne s'agit que du répertoire et non du nom de fichier. Pour obtenir le répertoire de travail et le nom du fichier, nous pouvons utiliser le registre spécial %
, qui contient des informations sur le fichier actuel.
Si vous utilisez :echo @%
, vous obtiendrez le répertoire et le nom du fichier actuel.
Si vous utilisez :echo expand('%:p')
, vous obtiendrez le chemin d'accès complet et le nom du fichier actuel. Ceci est très similaire à la réponse de CharlesL .
Je me souviens celui - ci, cependant, parce que si vous utilisez l'aide de vim :h expand
, il mentionne que %
et %:p
et leurs proches.
J'utilise:
:f[ile]
C'est :f
ou :file
.
Je suis surpris que personne ne mentionne cela dans les réponses, est-ce que je manque quelque chose?
Pour afficher le chemin complet de tous les fichiers, y compris les liens symboliques résolus, utilisez ce qui suit.
:echo resolve(expand('%:p'))
Il existe déjà de meilleures réponses, mais si (pour une raison quelconque) vous souhaitiez utiliser le shell pour obtenir le chemin complet du fichier (cela est plus utile si vous allez effectuer une autre opération sur le fichier avec le shell), sur un système de type Unix, vous pouvez exécuter:
:!realpath %
ou:
:'<,'>!realpath %
pour insérer le chemin dans le document sur la sélection en cours.
Register %
contient toujours le nom du fichier. Par exemple, si vous modifiez un fichier de configuration sans disposer de droits en écriture (et ne souhaitez pas exécuter Vim en tant que root), vous pouvez éditer le fichier, puis exécuter:
:w ! sudo tee %
pour sauvegarder le fichier (un petit peu offtopic ici, mais c'est un bon exemple de ce qui peut être fait avec le %
registre).
realpath
ce n'est pas POSIX, donc ça pourrait être plus simple à faire:!echo "$PWD/%"
Vous devez définir votre ligne d'état pour qu'elle soit visible et également la définir comme chemin. Je l'ai fait de manière permanente en ajoutant les deux lignes ci-dessous à mon ~ / .vimrc
set laststatus=2
set statusline+=%F
Si vous voulez simplement lancer ça une fois. Puis quand VIing un type de document
:set laststatus=2 <ENTER>
:set statusline+=%F <ENTER>
J'utilise vim airline pour cela et quelques fonctionnalités intéressantes:
Vous pouvez afficher le chemin complet du fichier que vous modifiez dans la barre de titre, ce qui est un moyen pratique d'afficher le chemin du fichier, à mon avis.
Pour ce faire, vous devez définir l' title
option et titlestring
. Actuel j'utilise les paramètres suivants:
set title
set titlestring=%{hostname()}\ \ %F\ \ %{strftime('%Y-%m-%d\ %H:%M',getftime(expand('%')))}
Il montrera le nom d'hôte de Vim, puis le chemin complet du fichier et suivi de la dernière heure de modification du fichier. Voir la figure ci-dessous pour une démo
Ctrl+G
plus comme 'chemin relatif à vim's cwd'?