prompt de 256 cores em Zsh

11

Como posso definir meu prompt para ser colorido em 256 cores? Eu estou procurando um equivalente ao prompt bash:

  local DEFAULT="\[3[0;39m\]"
  local ROOK="\[3[38;5;24m\]"
  PS1="${ROOK}\$${DEFAULT} "
    
por Sardathrion 25.11.2011 / 12:08

2 respostas

9

Primeiro, verifique se o seu terminal suporta 256 cores, o que suponho que você já tenha. Segundo, use uma variável PS1 com o código correto, por exemplo:

export PS1='%{^[[01;38;05;214;48;05;123m%}%m%{^[[0m%} '

Isso fornecerá um prompt com o nome do host em negrito, com uma cor de primeiro plano de 214 e uma cor de segundo plano de 123.

Note que ^[ é "introduzido" digitando Ctrl + v e Ctrl + [ . Veja este excelente artigo " Essa coisa de 256 cores "para toda a lista de atributos.

    
por 25.11.2011 / 13:20
7
export PS1='%F{214}%K{123}%m%k%f'

De man zshmisc :

   %F (%f)
          Start (stop) using a different foreground colour, if supported by the terminal.  The colour may be specified two ways: either as a numeric argument, as normal, or by a sequence in braces following the %F, for example %F{red}.  In the latter case the values allowed are as described for the fg zle_highlight attribute; see  Char‐
          acter Highlighting in zshzle(1).  This means that numeric colours are allowed in the second format also.

   %K (%k)
          Start (stop) using a different bacKground colour.  The syntax is identical to that for %F and %f.

Também para experimentar, pode ser usado assim:

$> print -P '%F{214}%K{123}%m%k%f'
    
por 02.01.2014 / 01:41

Tags