179 votes

Comment puis-je changer la couleur de mon invite dans zsh (différent du texte normal)?

Pour mieux reconnaître le début et la fin de la sortie sur une ligne de commande, je souhaite modifier la couleur de mon invite afin qu'elle soit visiblement différente de la sortie du programme. Pendant que j'utilise zsh, quelqu'un peut-il me donner un indice?

352voto

Joe the Person Points 1505

Mettez ceci en ~/.zshrc :

 autoload -U colors && colors
PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%~ %{$reset_color%}%% "
 

Couleurs prises en charge:
Rouge, bleu, vert, cyan, jaune, magenta, noir et blanc (d'après cette réponse ) bien que différents ordinateurs puissent avoir différentes options valides.

Codes de couleur surround (et tout autre caractère non imprimable) avec %{....%} . Ceci est pour que le retour à la ligne fonctionne correctement.

93voto

Mitro Points 448

Zsh est livré avec des invites de couleur intégrées. Essayer

 autoload -U promptinit && promptinit
 

puis prompt -l répertorie les invites disponibles, -p fire prévisualisations l'invite " le feu", -s fire le met.

Lorsque vous êtes prêt à ajouter une invite, ajoutez quelque chose comme ceci sous la ligne de chargement automatique ci-dessus:

 prompt fade red
 

74voto

Bryan Oakley Points 63365

Voici un exemple de configuration d'un rouge invite:

PS1=$'\e[0;31m$ \e[0m'

La magie est l' \e[0;31m (tourner sur le rouge au premier plan) et \e[0m (éteindre les attributs de caractères). Celles-ci sont appelées séquences d'échappement. Les différentes séquences d'échappement de vous donner des résultats différents, d'une façon absolue positionnement du curseur, la couleur, pour être en mesure de modifier la barre de titre de la fenêtre, et ainsi de suite.

Pour en savoir plus sur les séquences d'échappement, voir l'article de wikipédia sur les codes d'échappement ANSI

29voto

Andrew Marshall Points 43955

Je ne pense pas que le autoload -U colors && colors est nécessaire et on peut simplement faire:

 PS1="%{%F{red}%}%n%{%f%}@%{%F{blue}%}%m %{%F{yellow}%}%~ %{$%f%}%% "
 

obtenir le même résultat que la réponse de FireDude . Voir la documentation ZSH pour plus d'informations.

1voto

kzarns Points 472

l'homme zshall et de recherche rapide EXPANSION

Après la lecture de l'existant réponses ici, plusieurs d'entre eux sont contradictoires. J'ai essayé les différentes approches sur les systèmes exécutant zsh 4.2 et 5+ et a constaté que la raison pour laquelle ces réponses sont contradictoires, c'est qu'ils ne disent pas quelle est la version de ZSH ils sont ciblés. Les différentes versions d'utiliser une syntaxe différente pour cette et certaines d'entre elles nécessitent divers charge automatiquement quand.

Donc, le meilleur pari est probablement à l'homme zshall et de recherche rapide EXPANSION de connaître toutes les règles de votre installation de zsh. Remarque dans les commentaires, des choses comme "j'utilise Ubuntu 11.04 ou OSX 10.4 ou" ne Sont pas très significatives comme il est difficile de savoir quelle est la version de ZSH vous utilisez. Ubuntu 11.04 n'implique pas une version plus récente de ZSH que ubuntu 10.04. Il peut y avoir un certain nombre de raisons qu'une ancienne version a été installé. Pour une version plus récente de ZSH n'implique pas quelle syntaxe utiliser, sans savoir quelle est la version de ZSH, il est.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X