在 macOS Terminal.app 中前景和背景颜色呈现不同

问题描述 投票:0回答:2

受“电力线外观”的启发,我尝试为 zsh 构建一些简单的自定义提示。我的 .zshrc 目前看起来像:

CLICOLOR=1
PROMPT=$'%K{236}%F{246}%n%f@%B%m%b %k%K{045}%F{236}\Ue0b0%f %F{000}%2~%f %k%F{045}\Ue0b0%f %# '

但是,我注意到路径的背景颜色和下面的三角形的前景色(都设置为045)之间存在颜色差异,如下面的屏幕截图所示Prompt in macOS Terminal.app

我以为我的

PROMPT
变量有问题,但 VSCode 内的终端中的提示看起来不错:Prompt in VSCode

似乎 Terminal.app 由于某种原因使背景颜色变暗,但我没有找到关闭此功能的方法。 这可能吗?或者我可以通过某种方式修改我的

PROMPT
来防止出现问题吗?

编辑:我使用的字体“Hack”可以在这里找到:https://sourcefoundry.org/hack/

提前致谢, 菲利普

macos colors zsh terminal.app
2个回答
2
投票

问题在于 MacOS 终端应用程序有一个奇怪的功能,它会根据终端的默认背景以不同的方式呈现文本。如果显式指定背景颜色,则前景色与未指定背景颜色或已重置为默认值时的颜色略有不同。

这与下面的问题相同。检查那里以获得更好的讨论和潜在的解决方法。 https://apple.stackexchange.com/questions/282911/prevent-mac-terminal-brightening-font-color-with-no-background/446604#446604


0
投票

就像 @user3363087 的链接

方法1

PROMPT=$'%K{236}%F{246}%n%f@%B%m%b %k%K{cyan}%F{236}\Ue0b0%f %F{000}%2~%f %k\e[48;5;256;36m\Ue0b0%f%k %# '

要更改“电源线外观”路径块的颜色,请设置 ANSI 青色值。如果您想将其更改为绿色,请将

%K{cyan}
\e[48;5;256;36m
替换为
%K{green}
\e[48;5;256;32m

以下是其他颜色:

    Text (m)    \033[48;5;256;m
    Bold (1m)   \033[48;5;256;1m
    Black (30m) \033[48;5;256;30m
    Red (31m)   \033[48;5;256;31m
    Green (32m) \033[48;5;256;32m
    Yellow (33m)    \033[48;5;256;33m
    Blue (34m)  \033[48;5;256;34m
    Magenta (35m)   \033[48;5;256;35m
    Cyan (36m)  \033[48;5;256;36m
    White (37m) \033[48;5;256;37m

方法2

PROMPT=$'%K{236}%F{246}%n%f@%B%m%b %k%K{045}%F{236}\Ue0b0%f %F{000}%2~%f %k%K{0}%F{045}\Ue0b0%f%k %# '

您需要将

%K{0}
替换为终端背景的实际值。

© www.soinside.com 2019 - 2024. All rights reserved.