Comment puis-je faire apparaître les commandes en gras dans zsh?


18

J'ai configuré mon shell bash de sorte que toutes les commandes que je tape apparaissent en gras et la sortie des commandes s'affiche en poids normal:

entrez la description de l'image ici

J'ai fait cela en ajoutant \e[01mà la fin de ma PS1variable pour activer le gras et en l'utilisant trap DEBUGpour le désactiver:

trap 'printf "\e[0m" "$_"' DEBUG

De cette façon, le \e[0mest imprimé avant l'exécution de chaque commande et j'obtiens un poids de police normal dans la sortie.

Comment pourrais-je obtenir le même effet zsh?

Réponses:



7

Ce que vous voulez, c'est la fonction de crochet preexec :

preexec() { printf "\e[0m"; }

Ensuite, avant l'exécution de chaque commande, preexecsera exécuté pour réinitialiser votre police à la normale.

Donc, pour obtenir la même invite que vous montrez dans votre question, ajoutez ces lignes à votre ~/.zshrc:

autoload -U colors && colors
PS1="%{$fg_bold[yellow]%}%n@%m %{$fg[blue]%}%~ \$ %{$reset_color%}%{$fg_bold[white]%}"
preexec() { printf "\e[0m"; }

C'est la bonne chose à utiliser au lieu d'un piège DEBUG, mais ce n'est pas non plus la bonne façon de mettre la ligne de commande en gras.
Gilles 'SO- arrête d'être méchant'
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.