Как получить доступ к значениям Solarized в скрипте bash
Я пытаюсь сделать мой bash
PS1
быстрые цвета в соответствии с темой Solarized. Я установил солярий и работаю на iTerm2
, но до сих пор не удалось создать настраиваемое приглашение PS1, соответствующее теме.
Я попытался использовать такие значения, как следующие для голубого, но в итоге я получил либо нет цвета, либо неправильный цвет.\033[0;37m
Я получил значения выше по следующей ссылке. https://github.com/altercation/solarized/tree/master/iterm2-colors-solarized
1 ответ
Если вы запрашиваете escape-последовательности ANSI, вот несколько советов:
0 Black
1 Red
2 Green
3 Yellow/Brown
4 Blue
5 Pink
6 Cyan
7 White/Gray
Каждый из них применяется к переднему плану или цвету фона.
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.
Например, делая printf "\033[1;44;97m"
Вы делаете свой фон 44
(мрачно-синий) передний план 97
(интенсивный белый).
Есть и другие полезные цветовые коды, которые вы также должны использовать:
0 reset all colors
1 bold
3 italics
4 underline
5 blink
7 inverse
Чтобы вам было удобнее с этим работать, вы можете создать набор псевдонимов, таких как fiblue
fred
bblack
и т.д. Вы также можете добавить следующую функцию к вашему bashrc
:
ansi() {
printf "\033[$1"
}
Так что вместо написания \033[1;35m
ты сделаешь ansi '1;35m'
и написание цветных псевдонимов с этой функцией удобнее.
Вы также должны принять к сведению, что установка цвета фона сбрасывает уже установленный цвет переднего плана, поэтому вы должны использовать \033[
misc;background;foreground
m
,
Таким образом, вы можете нарисовать любой PS1
тебе нравится. Вот пример:
PS1="\033[0;1;36m\u\033[0;1m:\033[1;103;30m\t\033[0m \033[1;92m\$\033[0m \r"
Также взгляните на bash_it.
Надеюсь, я ответил на то, что вы спросили.