Ouverture de fichiers dans le même dossier que le fichier courant, dans vim
Dans vim, quand j'ai un tampon ouvert, j'ai souvent besoin de charger un autre fichier dans le même répertoire que le fichier est en cours, mais comme je n'ai pas l'habitude cd
, le pwd
est un dossier parent, donc je dois me retaper le chemin à chaque fois. Est-il un raccourci pour cela? ou un moyen de changer la ddt dans le répertoire le fichier est-il?
exemple:
cd /src
vi lib/foo/file.js
lib/foo a deux fichiers: file.js
et file2.js
dans vi:
:e file2.js # doesn't work
Vous devez vous connecter pour publier un commentaire.
Les nouvelles versions de vim ont un autochdir de commande intégré, si pas, vous pouvez revenir à un BufEnter que le programme d'installation.
cd
à ce répertoire, en premier lieu, avant de l'ouverture du fichier. Ils sont à la fois tout aussi restrictives en matière d'accès à d'autres répertoires d'après le fichier est ouvert? @hgmnz solution ci-dessous est beaucoup plus élégant & souple.:Ex courte pour :Explorer fait exactement ce que vous avez demandé.
:Sex
J'ai les trois lignes suivantes sur mon
.vimrc
:Maintenant
,e <some-file>
s'ouvre sur ce tampon.,t
et,s
faire la même chose mais sur un nouvel onglet/fenêtre partagée.:e
toujours des exercices de haut en bas. Jusqu'à présent, si je voulais ouvrir un fichier dans le même répertoire que le fichier en cours, je voudrais utiliser:E
ce qui amène le netrw l'explorateur de fichiers. À l'aide de votre,e
cartographie se sent beaucoup plus rapide. C'est génial la façon dont vous pouvez l'onglet à travers les fichiers dans le répertoire courant.:cd %:h
Une idée simple est d'utiliser le autochdir réglage. Essayez ceci dans votre .vimrc:
Cela va changer le répertoire de travail de vim dans le répertoire du fichier que vous avez ouvert.
Note: je ne suis pas certain de la version ajouté cette fonctionnalité. J'ai mis à jour à partir de vim 6 à 7,2 pour obtenir que cela fonctionne.
7.2.108
gvim path/to/file.c
il va cd sur le chemin/et puis essayez d'ouvrir le chemin/vers/le / fichier.c, vous donnant un tampon vide dans inexistante de l'emplacement. 🙁 (64 bits 7.2 sur Windows, de toute façon.)Essayez ce qui suit:
%:p:h/
comme un raccourci pour le chemin d'accès actuel, permet de l'appliquer à toute autre situation où le chemin d'accès actuel peut être nécessaire, comme:r
,:w
, ...:sp %:h/file2.js
semble également fonctionner. Sinon, on peut faire de:sp %<tab>
et ensuite modifier le nom de fichier en tant que de besoin.Ajoutez cette ligne à votre
vimrc
configuration% nom du fichier en cours
:p développez de chemin d'accès complet
:h la tête (dernier élément de chemin supprimé)
Voir
:help expand
pour de plus amples informations.%:p:h
signifie 🙂La solution avec autochdir a ses propres pièges. Par exemple, vous devez rester à la dir vous, car les Balises sont définies avec chemin d'accès relatif ou vous avez besoin d'un Makefile ou pom.xml dans le répertoire courant.
Vous pouvez utiliser
et ensuite modifier le chemin d'accès par la suppression du nom du fichier et entrez-en un nouveau.
Ou.
Utilisez la carte
Puis en appuyant sur \e ou ,e (dépend de la chef de file des paramètres) vous recevrez la commande ouvrir le répertoire dans lequel votre fichier et vous pouvez compléter cette commande manuellement et on peut utiliser ctrlD pour afficher tous les fichiers dans le fichier en cours de répertoire.
Ou.
Vous pouvez essayer de 0scan plugin.
Clés
0f
set tags=_tags/tags;c:/work
signifie "aller jusqu'à ce que vous trouver quelque chose correspondant_tags/tags
, mais arrête si vous appuyezc:/work
. Donc, si je suis en train de modifier c:/work/project/main/src/lib/subdir/file.c (à partir du fichier de répertoire), il peut encore trouver mon tagfile c:/work/project/main/_tags/tagsSi vim a un :trouver la commande qui va utiliser la variable "path". Si vous avez de la cohérence des structures de répertoire pour votre code comme tous les source en vertu d'un répertoire "src", alors vous pouvez simplement ajouter que la "voie" de la variable. Ensuite, lorsque vous avez à faire :trouver foo.js il recherche à la fois de votre emplacement actuel, puis les dossiers répertoriés dans votre variable path. Essentiellement, il émule la façon bash ou une autre shell utilise la variable de CHEMIN d'accès pour trouver le binaire à exécuter.
J'ai mis cela dans mon .fichiers vimrc, qui va changer le répertoire courant vers le fichier dans la mémoire tampon. Cela définit le répertoire courant de la mémoire tampon, et les mises à jour lorsque vous changez de tampons.
Vous savez probablement qu'une fois que vous êtes dans vim, vous pouvez utiliser
de changement dans lib/foo.
D'autre part, à modifier dans le répertoire du fichier, vous êtes d'édition en cours, essayez de
Vous pouvez toujours utiliser
pour vérifier votre répertoire de travail courant.
Et bien sûr, si vous avez oublié ce fichier, vous êtes d'édition, appuyez simplement sur ctrl-g.
Sur le "raccourci" avant, avez-vous regardé dans le
:Sex
commande? Cela ouvre le navigateur de fichiers en une fraction de sorte que vous pouvez ouvrir d'autres fichiers facilement.:Sex
par défaut pour le répertoire de la mémoire tampon active. Assez chouette, si je le dis moi-même.Je la lie
;o
pour un accès facile:Vous pouvez également utiliser
:Ex
si vous voulez le garder dans le tampon courant au lieu de créer une scission.:Ex
. Je suis en amour avec fentes, donc je pense que de cette façon. Je vais modifier la réponse pour elle.Une autre option est de faire:
Ce cycles à travers les dossiers dans votre répertoire de travail.