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 ./)


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:.

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.