Zsh

覆蓋zsh提示的bg顏色

  • August 31, 2020

我正在使用zshwith prompt fade,我沒有oh-my-zsh安裝。

我的終端背景是深藍色,不是黑色,但提示列印在黑色背景上。

如何覆蓋它以使提示使用與終端其餘部分相同的背景顏色?

FWIW,我已經RPS1設置.zshrc並使用正確的背景顏色。

RPS1='[%F{yellow}%?%f] '

zsh除非您要求,否則不會更改背景或前景色。

因此,如果您的提示背景不是預設顏色,那是因為您或您啟用的某些提示主題或第三方自定義擴展已將其配置為這樣做。

在快速擴展中,背景顏色用%K{colour}%k(與 相同%K{default})更改,但也可以通過嵌入硬編碼的轉義序列來更改,例如在大多數終端$'%{\e[40;37;1m%}foo%{\e[m%}'上使用黑底白字。foo

還有一種突出%S模式(以停止),在大多數終端上都是使用反向影片(交換背景和前景色)完成的。%s

因此,如果您想保留預設背景顏色,則需要從$PS1(aka $PROMPT) 變數的定義中刪除這些顏色。

另請注意,如果promptsubst啟用了該選項並且您$PS1包含諸如$(some command)or之類的內容${some_variable},則這些內容將在提示展開時展開,因此您還需要注意其中的顏色變化序列。

您表明您正在使用fade提示主題。預設情況下,該主題中的$PS1變數是:

%F{green}%B%K{green}█▓▒░%F{white}%K{green}%B%n@%m%b%F{green}%K{black}█▓▒░%F{white}%K{black}%B %D{%a %b %d} %D{%I:%M:%S%P}
%}%F{green}%K{black}%B%~/%b%k%f

在哪裡看到%K{black}. 如果您查看prompt_fade_setupfunction 或 run的定義prompt -h fade,您會發現 color 不在它允許您自定義的內容中。所以如果你不喜歡黑色背景,你也可以

  • 切換到不同的主題
  • 根據該主題創建自己的提示主題(info zsh "prompt themes"有關詳細資訊,請參閱)。
  • 在你的PS1=${PS1//\%K{black}/%k}之後添加prompt fade``~/.zshrc
  • 不要使用prompt fade,只需將該PS1變數定義復製到您~/.zshrc%K{black}替換為%k.

引用自:https://unix.stackexchange.com/questions/606792