Jak ustawić pogrubienie poleceń w Zsh?


18

Skonfigurowałem moją powłokę bash, aby wszystkie wpisywane przeze mnie polecenia były pogrubione, a ich wynik wyświetlany w normalnej wadze:

wprowadź opis zdjęcia tutaj

Zrobiłem to, dodając \e[01mna końcu mojej PS1zmiennej, aby włączyć pogrubienie i używając, trap DEBUGaby ją wyłączyć:

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

W ten sposób \e[0mdrukowane jest przed wykonaniem każdego polecenia , a na wydruku otrzymuję normalną grubość czcionki.

Jak mógłbym uzyskać taki sam efekt zsh?

Odpowiedzi:



7

To, czego chcesz, to funkcja haka Preexec :

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

Następnie przed wykonaniem każdego polecenia preexeczostanie uruchomione, aby zresetować czcionkę do normalnej.

Aby uzyskać ten sam monit, który pojawia się w pytaniu, dodaj następujące wiersze do ~/.zshrc:

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

To jest właściwe, aby użyć zamiast pułapki DEBUG, ale nie jest też dobrym sposobem na pogrubienie wiersza poleceń.
Gilles „SO- przestań być zły”
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.