如何在 bash 腳本中存取 Solarized 顏色值

如何在 bash 腳本中存取 Solarized 顏色值

我正在嘗試bash PS1根據以下內容製作提示顏色日曬主題。我有曬過的已安裝並適用於iTerm2,但到目前為止尚未成功建立與主題相符的自訂 PS1 提示符號。

我嘗試過使用如下所示的青色值,但最終要么沒有顏色,要么得到錯誤的顏色。 \033[0;37m

我從以下連結獲得了上述值。 https://github.com/altercation/solarized/tree/master/iterm2-colors-solarized

答案1

如果你問的是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 bblackbashrc

ansi() {
    printf "\033[$1"
}

因此,您不必編寫\033[1;35mdo ansi '1;35m',並且使用該函數編寫顏色別名會更舒適。

您還應該注意,設定背景顏色會重設已設定的前景色,因此您應該使用\033[misc;background;foregroundm

這樣,你就可以畫任何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

希望我回答了你的問題。

相關內容