如何在 zsh/Screen 中使用十六进制颜色代码?
How to use hex color codes in zsh/Screen?
在使用 zsh 的 Raspberry Pi 上,我设置 PS1=%B%F{#50F862}%n@%m%f%b:%B%F{#625EF6}%~ %#%f%b
模仿 ${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w $\[3[00m\]
的默认 bash 着色,因为我更喜欢使用 zsh
.这在通常的 ssh
会话中按预期工作,但是当我开始 screen
会话时,提示颜色为灰色。
如果我改为 PS1=%B%F{green}%n@%m%f%b:%B%F{blue}%~ %#%f%b
,那么颜色会按预期显示(而且,我必须承认,看起来很难区分 - 所以这不是什么大问题,这只是一种好奇心)。如何在屏幕的 zsh 提示中使用十六进制颜色代码?
试试这个:
zmodload zsh/nearcolor
并非所有设备和程序都支持十六进制三元组颜色;看起来 screen
可能在只能处理 256 colors 的集合中,因此它不理解它得到的转义码。使用 nearcolor
模块,zsh
将尝试将十六进制颜色映射到一种受支持的颜色。
你也可以直接用%F
和%K
指定xterm颜色,避免加载任何模块:
PROMPT='%B%F{93}%n@%m%f%b%F{240}:%f%B%K{112}%~ %#%k%b '
在使用 zsh 的 Raspberry Pi 上,我设置 PS1=%B%F{#50F862}%n@%m%f%b:%B%F{#625EF6}%~ %#%f%b
模仿 ${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w $\[3[00m\]
的默认 bash 着色,因为我更喜欢使用 zsh
.这在通常的 ssh
会话中按预期工作,但是当我开始 screen
会话时,提示颜色为灰色。
如果我改为 PS1=%B%F{green}%n@%m%f%b:%B%F{blue}%~ %#%f%b
,那么颜色会按预期显示(而且,我必须承认,看起来很难区分 - 所以这不是什么大问题,这只是一种好奇心)。如何在屏幕的 zsh 提示中使用十六进制颜色代码?
试试这个:
zmodload zsh/nearcolor
并非所有设备和程序都支持十六进制三元组颜色;看起来 screen
可能在只能处理 256 colors 的集合中,因此它不理解它得到的转义码。使用 nearcolor
模块,zsh
将尝试将十六进制颜色映射到一种受支持的颜色。
你也可以直接用%F
和%K
指定xterm颜色,避免加载任何模块:
PROMPT='%B%F{93}%n@%m%f%b%F{240}:%f%B%K{112}%~ %#%k%b '