Je sais que je peux compléter les noms de fichiers / chemins à partir du répertoire actuel en utilisant ctrl + x, ctrl + f ( compl-filename
). Cela fonctionne très bien en combinaison avec set autochdir, qui modifie les mises à jour du répertoire en cours vers le répertoire du tampon actif.
Cependant, j'ai commencé à utiliser airblade/vim-rooter
pour faire du répertoire courant le dossier "project". Maintenant, l'achèvement du nom de fichier commence toujours à partir du dossier du projet.
La question: existe-t-il un moyen de faire en sorte que la complétion du nom de fichier utilise le répertoire du tampon actif au lieu du répertoire actuel? Ou une autre solution?
autocompletion
Rafael Barbosa
la source
la source
path
plus). Cela dépend de votre utilisation prévue pour vim-rooter. Selon ce que vous en attendez, nous pourrions utiliser d'autres plugins. En plus: j'utilise youcompleteme, qui complète les chemins du répertoire du tampon courant si vous commencez à taper./
. Voir reddit.com/r/vim/comments/216jdd/…Réponses:
Comme @muru l'a mentionné, il n'y a pas d'options pour configurer le répertoire à partir duquel le chemin et les noms de fichiers doivent être complétés. Il utilise toujours le répertoire de travail de la fenêtre.
J'ai écrit quelques fonctions et mappages pour vous aider. Dans les coulisses, ils changent
:lcd
temporairement le répertoire de travail local (à l'aide de ), puis restaurent le répertoire de travail précédent une fois terminé.l'éléphant
Pour des raisons que je ne connais même pas, j'ai appelé ce micro-plugin Elephant .
Voici le code (copié de ma configuration Vim sur GitHub ):
Comment l'utiliser
L'utilisation de ces mappages se déroule en 3 étapes.
1. Appelez le mappage
En mode Insertion ou en ligne de commande, appelez le mappage à l'aide de
<C-R><C-E>
.2. Choisissez un répertoire
Tapez un seul caractère pour choisir le répertoire racine à partir duquel vous souhaitez terminer. Le code ci-dessus fournit deux types de racines:
f
- Le répertoire dans lequel se trouve le fichier actuel (tampon)p
- Le répertoire de base du projet Git auquel appartient le fichier actuel3. Entrez le chemin ou le nom du fichier
Vous serez invité à entrer le chemin d'accès ou le nom de fichier relatif au répertoire spécifié, l'achèvement étant disponible. Appuyez sur
Enter
lorsque vous avez terminé.Quelques notes
<C-X><C-F>
fait; au lieu de cela, vous taperez le chemin d'accès ou le nom de fichier sur l'invite de ligne de:
commande (où les commandes vont). En appuyant surEnter
, le chemin sera inséré dans le tampon.Enter
et oubliez que vous devez toujours appuyerEnter
pour émettre la commande que vous venez de taper.g:elephant_map
.la source