Lorsque je modifie un fichier dans Vim, existe-t-il une commande permettant de voir le chemin du fichier actuel? Cela est parfois très pratique s'il y a plusieurs fichiers du même nom dans un projet.
statusline
thameera
la source
la source
Ctrl+G
plus comme 'chemin relatif à vim's cwd'?C-g
par défaut0C-g
, et2C-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:
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:
Source: Obtenir le nom du fichier en cours sur vim wikia
Apparenté, relié, connexe:
la source
=expand...
expressions aprèsCtrl-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
la source
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.la source
J'utilise:
C'est
:f
ou:file
.Je suis surpris que personne ne mentionne cela dans les réponses, est-ce que je manque quelque chose?
la source
Pour afficher le chemin complet de tous les fichiers, y compris les liens symboliques résolus, utilisez ce qui suit.
la source
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:
ou:
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:pour sauvegarder le fichier (un petit peu offtopic ici, mais c'est un bon exemple de ce qui peut être fait avec le
%
registre).la source
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
Si vous voulez simplement lancer ça une fois. Puis quand VIing un type de document
la source
J'utilise vim airline pour cela et quelques fonctionnalités intéressantes:
la source
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 ettitlestring
. Actuel j'utilise les paramètres suivants: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
la source