zsh: Prompt colorido dinamicamente

Publicado por Sandro Marcell em 28/09/2010

[ Hits: 8.577 ]

Blog: http://sanmarcell.wordpress.com

 


zsh: Prompt colorido dinamicamente



No zsh existe uma função built-in chamada 'precmd' que sempre executa uma ação antes de exibir o prompt para o usuário, e uma forma de uso bem interessante para ela é a seguinte:

function precmd {
   PROMPT=$(print -Pn "%n > [%~] :" | perl -e 'print("%{\e[" => int(rand(7)) + 31 => ";1m%}" => $i) while (read(STDIN, $i, 1)); print("%{\e[0m%} ");')
}

Desta forma a precmd altera dinamicamente o conteúdo da variável PROMPT imprimindo na tela cada caractere com cores diferentes conforme a figura a seguir:
Linux: zsh: Prompt colorido dinamicamente
Para usá-la, basta adicionar a função em seu '.zshrc' e pronto!

Mais informações?

man zsh
$ man perl


Falou!

PS.: Acabei encontrando na net uma versão que usa somente comandos do próprio do zsh:

function precmd {
   eval toresbe="${(j:%%\{\\e\[1\;$(((RANDOM % 7) + 31))m%%\}:)${(s::)$(print -P 'X%[email protected]%m:%~')}}%%#"
   PROMPT="$(print -P ${toresbe#?} %%{\\e\[0m%%})"
}

E que faz exatamente a mesma coisa que a primeira! =]

Outras dicas deste autor

Declarando constantes em shell scripts

Utilizando abreviações no Vim

js-bwm: monitorando seu link de internet em tempo real

ifconfig + sed - Mostrando seu endereço IP

Removendo linhas duplicadas não-consecutivas

Leitura recomendada

Ubuntu 12.4 no VirtualBox - Corrigindo erro de instalação

Zimbra 8 no CentOS 6.5

Habilitar funcionamento do 3D status map do Nagios

Corrigindo ć no Firefox (ATUALIZADO) - 2009 (32 e 64 bits)

Instalando Telegram a partir do arquivo tar.xz

  

Comentários
[1] Comentário enviado por albfneto em 28/09/2010 - 15:47h

ZSH é massa, eu uso também...

[2] Comentário enviado por /bin/laden em 29/09/2010 - 08:37h

Realmente o zsh é fantástico, possui características incríveis.



Contribuir com comentário