如何在 zsh 提示符中将文本变为斜体?

How to italicise text in zsh prompt?

我很难理解如何将我的 zsh 提示符的一部分设为斜体(使用 prezto)。

我的提示目前是这样的:

PROMPT='%F{yellow}%T %F{magenta}${SSH_TTY:+%n@%m }%F{cyan}%1~%f${vcs_info}\ 55 %(!.%B%F{red}#%f%b.%B %(?.%F{green}.%F{red})❯%f%b) '

假设我想让 vcs_info 变成斜体,我该怎么做?

理论上,ANSI转义码\e[3m设置斜体SGR。所以要回答你的问题,这应该有效:

PROMPT='...%{\x1b[3m%}${vcs_info}%{\x1b[0m...%}'

不幸的是,italic textnot widely supported in terminals emulators。有些只是忽略它,有些则反转颜色而不是斜体文本。要测试您的终端仿真器,请检查 echo -e "\e[3mitalic\e[0m" 的输出。如果不打印 italic,您需要使用可以打印的终端仿真器,例如 gnome-terminal。