Existe-t-il un moyen d'obtenir une sortie colorée lors de l'utilisation de la tabulation dans un terminal? Mes couleurs sont bien partout ailleurs, donc je sais que j'ai réussi à activer un terminal couleur.
Comment spécifiez-vous une "sortie colorée lors de l'utilisation de la complétion de tabulation"?
slhck
Réponses:
21
Il n'y a pas de fonction dans Bash pour colorer la sortie pendant l'achèvement comme il y en a dans le poisson et le zsh. On pourrait écrire des fonctions de complétion qui produisent des séquences de contrôle des couleurs, mais il faudrait conserver des copies des compléments proposés avec et sans codes de couleur ou les supprimer lorsque l'utilisateur fait une sélection car Bash utilise la sélection directement normalement et les codes de couleur le feraient gêner.
Si c'est une fonctionnalité importante pour vous, je vous recommande d'envisager d'utiliser zsh.
Mise à jour
Bash 4.3 readline ajoute une variable qui permet à la couleur pour la complétion de l'onglet d'afficher différentes couleurs pour les fichiers exécutables, les répertoires, etc., pendant la complétion de la tabulation:
colored-stats
Readline dans le prochain Bash 4.4 ajoute une variable qui permet à la couleur d'indiquer la partie correspondante de la chaîne lors de la complétion de l'onglet.
colored-completion-prefix
Vous pouvez voir les valeurs de ces variables en utilisant
bind -v | grep color
Pour les définir, ajoutez des lignes à votre ~/.inputrcfichier telles que:
@Ryan: Zsh est tout à fait compatible avec Bash. Vous trouverez probablement le commutateur assez facile. Il a beaucoup de fonctionnalités puissantes que Bash n'a pas (ou vous devez utiliser des utilitaires externes). Il y a seulement quelques choses qui sont significativement différentes dans les bases. Un exemple est que les index de tableau sont basés sur un au lieu de zéro, mais il y a un paramètre qui affecte cela. Cependant, je n'utilise que zsh de temps en temps.
pause jusqu'à nouvel ordre.
1
@AstroFloyd: Du Bash Manua : "Les définitions de couleurs sont tirées de la valeur de la LS_COLORSvariable d'environnement." La documentation de cette variable est ici . Il n'y a pas de paramètre pour les manpages, vous devrez donc regarder où votre LS_COLORSjeu est défini et trouver la combinaison de couleurs qui correspond et la changer. Sur mon système, les mannoms de page ne sont pas colorés lorsqu'ils sont complétés par des tabulations (et des liens symboliques cassés, alors qu'ils apparaissent en rouge sur gris en lssortie, ...
Pause jusqu'à nouvel ordre.
1
... sont bleu clair comme des liens symboliques valides pendant la tabulation).
pause jusqu'à nouvel ordre.
1
@AndyCarlson: Affiche les bind -v | grep colordeux set colored-completion-prefix onet set colored-stats on? Si oui, que se passe-t-il lorsque vous tapez la lettre a, puis appuyez deux fois sur tab? Si vous avez ajouté les paramètres à votre ~/.inputrcmais n'avez pas démarré de nouveau terminal ou n'avez pas exécuté re-read-init-fileen appuyant sur control-x control-r, les paramètres n'auront pas pris effet.
pause jusqu'à nouvel ordre.
2
@AndyCarlson Que produit une invite bash lorsque vous appuyez sur ctrl-x ctrl-v?
pause jusqu'à nouvel ordre.
3
Je ne connais pas les couleurs de complétion pour les options de commande et les arguments mais pour le nom de fichier et les répertoires, selon ( /unix//a/133866 ) user495470 indique que dans Bash 4.3 et versions ultérieures, vous pouvez ajouter set colored-stats onà ~/.inputrcpour obtenir la couleur achèvement quand vous le faites ls <tab>.
Réponses:
Il n'y a pas de fonction dans Bash pour colorer la sortie pendant l'achèvement comme il y en a dans le poisson et le zsh. On pourrait écrire des fonctions de complétion qui produisent des séquences de contrôle des couleurs, mais il faudrait conserver des copies des compléments proposés avec et sans codes de couleur ou les supprimer lorsque l'utilisateur fait une sélection car Bash utilise la sélection directement normalement et les codes de couleur le feraient gêner.
Si c'est une fonctionnalité importante pour vous, je vous recommande d'envisager d'utiliser zsh.
Mise à jour
Bash 4.3 readline ajoute une variable qui permet à la couleur pour la complétion de l'onglet d'afficher différentes couleurs pour les fichiers exécutables, les répertoires, etc., pendant la complétion de la tabulation:
Readline dans le prochain Bash 4.4 ajoute une variable qui permet à la couleur d'indiquer la partie correspondante de la chaîne lors de la complétion de l'onglet.
Vous pouvez voir les valeurs de ces variables en utilisant
Pour les définir, ajoutez des lignes à votre
~/.inputrc
fichier telles que:la source
LS_COLORS
variable d'environnement." La documentation de cette variable est ici . Il n'y a pas de paramètre pour lesman
pages, vous devrez donc regarder où votreLS_COLORS
jeu est défini et trouver la combinaison de couleurs qui correspond et la changer. Sur mon système, lesman
noms de page ne sont pas colorés lorsqu'ils sont complétés par des tabulations (et des liens symboliques cassés, alors qu'ils apparaissent en rouge sur gris enls
sortie, ...bind -v | grep color
deuxset colored-completion-prefix on
etset colored-stats on
? Si oui, que se passe-t-il lorsque vous tapez la lettre a, puis appuyez deux fois sur tab? Si vous avez ajouté les paramètres à votre~/.inputrc
mais n'avez pas démarré de nouveau terminal ou n'avez pas exécutére-read-init-file
en appuyant sur control-x control-r, les paramètres n'auront pas pris effet.Je ne connais pas les couleurs de complétion pour les options de commande et les arguments mais pour le nom de fichier et les répertoires, selon ( /unix//a/133866 ) user495470 indique que dans Bash 4.3 et versions ultérieures, vous pouvez ajouter
set colored-stats on
à~/.inputrc
pour obtenir la couleur achèvement quand vous le faitesls <tab>
.la source