Como posso fazer com que os comandos apareçam em negrito no zsh?


18

Eu configurei meu shell bash para que qualquer comando digitado apareça em negrito e a saída dos comandos seja mostrada em peso normal:

insira a descrição da imagem aqui

Eu fiz isso adicionando \e[01mno final da minha PS1variável para ativar negrito e usando trap DEBUGpara desativá-lo:

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

Dessa forma, o \e[0mé impresso antes de cada comando ser executado e eu recebo o peso normal da fonte na saída.

Como eu iria obter o mesmo efeito zsh?

Respostas:



7

O que você quer é a função de gancho preexec :

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

Antes de cada comando ser executado, preexecserá executado para redefinir sua fonte ao normal.

Portanto, para obter o mesmo prompt exibido na sua pergunta, adicione estas linhas ao seu ~/.zshrc:

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

Essa é a coisa certa a ser usada em vez de uma interceptação DEBUG, mas também não é o caminho certo para tornar a linha de comando em negrito.
Gilles 'SO- stop be evil'
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.