Existe-t-il un moyen d'auto-compléter les indicateurs des commandes lors de l'utilisation d'un terminal OSX?


1

Je me demandais s’il existait un moyen / plug in / bashrc pour les indicateurs de commandes à complétion automatique lors de l’utilisation du terminal OSX.

Exemple
En écrivant grep --excl et en appuyant tab il serait autocomplete à grep --exclude puis en appuyant sur tab une fois de plus serait autocomplete à grep --exclude-dir.

Réponses:


1

En supposant qu'il n'y a pas beaucoup de différence entre bash sous OSX et Linux ...

Vous pouvez utiliser le bash complete commande pour configurer les options d'auto-complétion dans bash. Vous devriez les mettre dans votre .bashrc déposer dans votre répertoire personnel, vous pouvez y accéder en tapant cd ~ ou cd $HOME dans le terminal. Si il n'y a pas .bashrc fichier dans votre répertoire personnel, créez-en un nouveau et mettez vos appels complete Là.

Vous devrez ajouter manuellement toutes les entrées possibles pour des commandes spécifiques. Il est toutefois concevable de créer un script pour analyser les options disponibles pour une commande à partir du man page et générer un appel à complete qui les inclut.

(Note: je n'ai pas utilisé complete en bash, personnellement. Je travaille principalement dans tcsh, mais sa commande est similaire, bien que sa syntaxe et sa propre implémentation soient uniques.)


Cela voudrait dire que je devrais programmer une fonction qui analyse tous les drapeaux existants de tous les programmes installés et les ajoute à la liste. complete méthode. Mais à chaque fois que j'ouvrirai bash, la fonction sera à nouveau exécutée, ce qui est inutile si les programmes installés n'ont pas changé. Et même si je pouvais le faire fonctionner une seule fois, chaque nouvelle installation devrait être relancée. Et puis, je ne voudrais pas que les drapeaux créent des erreurs entre les différentes commandes, ce à quoi cette solution aboutirait.
tomasyany

Vous pouvez faire en sorte que le script analyse tous les indicateurs des programmes de votre choix et génère la liste des programmes. complete commandes que vous pouvez ensuite mettre dans votre .bashrc. L'étape d'analyse serait la partie la plus longue, et vous avez raison, vous n'avez qu'à l'exécuter une fois. le complete les commandes n'ont pas une surcharge de performances.
Ben Richards

1
le complete commande comprend quelle commande vous exécutez. Donc si vous avez tapé grep, il utilisera uniquement les règles complètes de l'onglet pour grep commander. Pareil pour sed, tar, ls, ou toute autre commande que vous choisissez d'utiliser. bash est intelligent à ce sujet et sait quoi faire.
Ben Richards
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.