Faire en sorte que l'achèvement de l'onglet bash favorise les fichiers / répertoires au lieu de $ PATH

2

Je suis dans un répertoire qui ressemble à ceci:

$ ls
build  src  utils

Puis en écrivant ceci

$ ut

Et en appuyant sur tab, bash réalise automatiquement la complétion suivante:

$ utmpdump

Ce que je voulais, c’est d’ ut<tab>achever le utils/répertoire qui se trouve dans mon répertoire de travail actuel, comme par exemple l’écriture, de $ utitabsorte qu’il se termine comme suit:

$ utils /

Il semble donc que bash essaie de compléter automatiquement les éléments dans $ PATH, puis-je lui faire préférer le répertoire en cours dans un tel cas? (Sans avoir à écrire le ./)

non
la source
Après la mise à niveau vers stretch, je rencontre maintenant ce problème avec veTAB. Dans Jessie, il procédait auparavant à la saisie semi-automatique venv/(ce que j'espère, mon nom par défaut pour un python virtualenv), et il le fait maintenant verify-uselistorder.
n8henrie

Réponses:

-1

Mettez ceci dans votre base

shopt -s autocd

Cela entrera automatiquement cddans le chemin que vous avez écrit, si vous n’avez écrit que le chemin.

Et mettre .en toi $PATH. En plus de ce qui existe déjà, cela fonctionne pour l'exécution de fichiers, si les droits d'exécution sont donnés.

export PATH=$PATH:.
ap0
la source
Je ne suis pas intéressé à entrer dans le répertoire, mais à le compléter comme décrit dans la question. En mettant . dans le chemin ne semble pas aider (sauf si la commande que je complète est dans le répertoire de travail en cours)
nos
@nos: Vous n'avez pas testé shopt -s autocdavec la touche [tab].
Cyrus
@Cyrus Bien sûr que j'ai fait. La même chose se produit dans le cas 1., ut<tab>auto-complète à utmpdump. (L'autre cas d' uti<tab>auto - complétion comme précédemment pour utils / avec pour effet supplémentaire d'appuyer sur Entrée après utils / cd dans ce répertoire.)
nos
@nos: D'accord, alors je vous ai mal compris.
Cyrus