Como acessar valores de cor Solarizados no script bash

0

Estou tentando fazer com que minhas bash PS1 solicitem cores de acordo com o tema Solarizado . Eu tenho o solarized instalado e funcionando para iTerm2 , mas até agora não consegui criar um prompt personalizado do PS1 que combine com o tema.

Eu tentei usar valores como o seguinte para cyan, mas acabei ficando sem cor ou com a cor errada. 3[0;37m

Eu obtive os valores acima do link a seguir. link

    
por PhiloEpisteme 04.08.2015 / 01:01

1 resposta

1

Se o que você está perguntando é seqüências de escape ANSI , aqui estão algumas dicas :

0 Black
1 Red
2 Green
3 Yellow/Brown
4 Blue
5 Pink
6 Cyan
7 White/Gray

Cada um deles é aplicado ao primeiro plano ou à cor do plano de fundo.

3_  sets grim    foreground color
9_  sets intense foreground color
4_  sets grim    background color
10_ sets intense background color
# 3-4, 9-10 and a code for a color.

Por exemplo, ao fazer printf "3[1;44;97m" , você transforma seu plano de fundo 44 (azul sombrio) em primeiro plano 97 (branco intenso).

Existem outros códigos de cores úteis que você também deve usar:

0 reset all colors
1 bold
3 italics
4 underline
5 blink
7 inverse

Para tornar mais confortável trabalhar com isso, você pode criar um conjunto de alias como fiblue fred bblack etc. Você também pode adicionar a seguinte função ao seu bashrc :

ansi() {
    printf "3[$1"
}

Para que, em vez de escrever 3[1;35m , você faça ansi '1;35m' , e escrever aliases de cores com essa função seja mais confortável.

Você também deve observar que a definição de redefinições de cor de segundo plano já definiu a cor do primeiro plano. Por isso, use 3[ misc;background;foreground m .

Dessa forma, você pode pintar qualquer PS1 de que gosta. Aqui está um exemplo:

PS1="3[0;1;36m\u3[0;1m:3[1;103;30m\t3[0m 3[1;92m\$3[0m \r"

Veja também bash_it .

Espero ter respondido o que você pediu.

    
por 04.08.2015 / 02:54