Voici un exemple de la façon de définir une invite rouge:
PS1=$'\e[0;31m$ \e[0m'
La magie est le \e[0;31m
(activer le premier plan rouge) et \e[0m
(désactiver les attributs de caractère). Celles-ci sont appelées séquences d'échappement. Différentes séquences d'échappement vous donnent des résultats différents, du positionnement absolu du curseur à la couleur, en passant par la possibilité de changer la barre de titre de votre fenêtre, etc.
Pour plus d'informations sur les séquences d'échappement, consultez l'entrée wikipedia sur les codes d'échappement ANSI
Mettez ceci dans
~/.zshrc
:Couleurs prises en charge:
red
,blue
,green
,cyan
,yellow
,magenta
,black
, etwhite
(de cette réponse ) , bien que différents ordinateurs peuvent avoir différentes options valides.Encadrez les codes de couleur (et tout autre caractère non imprimable) avec
%{....%}
. C'est pour que l'habillage du texte fonctionne correctement.De plus, voici comment vous pouvez faire fonctionner cela avec le rognage de répertoire à partir d' ici .
la source
zsh: colors: function definition file not found
%{...%}
moyens que le contenu sera interprété comme une séquence d'échappement littéral, de sorte que le curseur wont se déplacer lors de l' impression de la séquence. Si vous ne l'utilisez pas, les codes de couleur peuvent en fait déplacer le curseur et produire des effets indésirables. Ceci est documenté dans laVisual Effects
section de la page de manuel zshmiscZsh est livré avec des invites colorées intégrées. Essayer
puis
prompt -l
répertorie les invites disponibles, affiche un-p fire
aperçu de l'invite "feu", la-s fire
définit.Lorsque vous êtes prêt à ajouter une invite, ajoutez quelque chose comme ceci sous la ligne de chargement automatique ci-dessus:
la source
Je ne pense plus que ce
autoload -U colors && colors
soit nécessaire et on peut simplement faire:pour obtenir le même résultat que la réponse de FireDude . Consultez la documentation ZSH pour plus d'informations.
la source
autoload -U colors && colors
autoload
.autoload on
?autoload -U colors
, cela signifie que votre distribution l'a déjà dans un autre fichier d'initialisation zsh. Vous devez toujours l'inclure dans les scripts que vous avez l'intention de partager avec d'autres.Couleurs disponibles:
Variables disponibles:
%F{118}
(1 à 256)$FG[018]
(1 à 256)$fg[magenta]
(magenta, rouge, blanc, jaune, noir, bleu, cyan, vert)Exemple rapide:
Installer:
La définition des variables (PS1 / PROMPT) doit être ajoutée à
~/.zshrc
Nous pouvons également redéfinir la variable PS1 sur l'invite actuelle pour la tester tout de suite (les modifications ne sont pas enregistrées).
la source
La réponse de Bryan Oakley ci-dessus a un pépin comme cela a déjà été signalé et la solution proposée par Andrew Marshall bien qu'elle ne porte pas le pépin, néanmoins cela ne le rend pas évident pour trop de personnalisation sur les couleurs utilisées.
Comme macOS Catalina demande désormais que zsh soit le shell par défaut, je pense que plusieurs autres personnes voudront peut-être personnaliser leur invite et viendront peut-être ici pour une réponse. Donc, j'ai pensé que j'essaierais de donner un résumé plus large et de toucher à d'autres notions très étroitement liées qui permettent plus de personnalisation.
Codes à 3 chiffres pour différentes couleurs. Tout d'abord, nous pouvons trouver ici des codes à 3 chiffres pour différentes couleurs: https://unix.stackexchange.com/a/124409/194343 . Par exemple, 214 est une sorte de couleur orange.
Premier plan et arrière-plan. L'autre information clé est que pour les couleurs de fond F oreground et bac K, on peut définir ce qu'elles veulent avec F et K respectivement. La source est le manuel zsh sur les effets visuels: http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Visual-effects
Ainsi, par exemple, les deux commandes suivantes
présenter le nom d'hôte en orange sur fond noir, suivi d'un deux-points en blanc sur fond noir, suivi du répertoire de travail actuel en bleu vif sur fond noir, suivi du signe dollar en blanc sur fond noir.
Plus d'informations connexes se trouvent ci-dessous.
Informations rapides sur le côté droit. Par exemple, ajouter un horodatage. Voir https://superuser.com/a/1251045/290299 . Bien sûr, cela peut être codé par couleur, par exemple avec une couleur bleu clair / violet-ish, comme ceci:
Couleurs pour
ls
. Après avoir lu le manuel de ls, on peut par exemple activer les couleurs pourls
utiliser les deux commandes suivantes:Enfin, comme dernière remarque que je n'ai pas testée car je suis satisfait de ma configuration, une autre avenue pourrait être pour quelqu'un d'installer le port
coreutils
depuis MacPorts puis de l'utilisergdircolors
(source: https://unix.stackexchange.com/a/174596 / 194343 ). (Je pourrais modifier cette dernière partie à l'avenir, car tous les éléments ci-dessus sont des éléments connexes qui rendent la vie de tous les jours beaucoup plus amusante et plus facile à gérer.)la source
J'ai trouvé qu'avec zsh5 (celui par défaut sur Debian Jessie), toutes ces solutions fonctionnent:
$'\e[00m
$fg[white]
$fg{white}
Maintenant, ils ont un problème: ils déplaceront le curseur, ce qui entraînera un décalque laid lors de la tabulation (pour l'auto-complétion). La solution est simplement d'entourer les séquences d'échappement
%{FOOBAR%}
. Il m'a fallu un certain temps pour comprendre cela. Pour les 2e et 3e solutions, lecolors
module de chargement est obligatoire. Pour que la première solution reste lisible, définissez simplement des variables pour les couleurs que vous utilisez.la source
Pour obtenir une invite avec la couleur en fonction de l'état de sortie de la dernière commande, vous pouvez utiliser ceci:
Ajoutez simplement cette ligne à votre
~/.zshrc
.La documentation répertorie les espaces réservés possibles.
la source
Essayez mon préféré: mettez
cette ligne:
n'oublie pas
pour tester les changements
vous pouvez bien sûr changer les couleurs / codes couleur :-)
la source
man zshall et recherchez PROMPT EXPANSION
Après avoir lu les réponses existantes ici, plusieurs d'entre elles sont contradictoires. J'ai essayé les différentes approches sur les systèmes exécutant zsh 4.2 et 5+ et j'ai trouvé que la raison pour laquelle ces réponses sont contradictoires est qu'elles ne disent pas quelle version de ZSH elles sont ciblées. Différentes versions utilisent une syntaxe différente pour cela et certaines d'entre elles nécessitent divers autoloads.
Donc, le meilleur pari est probablement de manier zshall et de rechercher PROMPT EXPANSION pour connaître toutes les règles de votre installation particulière de zsh. Notez dans les commentaires, des choses comme «J'utilise Ubuntu 11.04 ou 10.4 ou OSX» ne sont pas très significatives car on ne sait pas quelle 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 pour lesquelles une version plus ancienne a été installée. D'ailleurs, une version plus récente de ZSH n'implique pas la syntaxe à utiliser sans savoir de quelle version de ZSH il s'agit.
la source
Pour compléter toutes les réponses ci-dessus, une autre astuce pratique consiste à placer les paramètres d'invite colorés dans une fonction zsh. Là, vous pouvez définir des variables locales pour aliaser des commandes plus longues, par exemple
rc=$reset_color
ou définir vos propres variables de couleur. N'oubliez pas de le placer dans votre.zshrc
fichier et d'appeler la fonction que vous avez définie:la source