$PROMPT
(或$PS1
)。PROMPT_SUBST
。因此,我们可以通过重定向或管道print -P
的输出来获取原始转义序列:$ print $PROMPT
%{%f%b%k%}$(build_prompt)
$ print -P $PROMPT | cat -v ;# or redirect to a file as you like
^[[39m^[[0m^[[49m^[[40m^[[39m me@mycomputer ^[[44m^[[30mM-nM-^BM-0^[[30m ~ ^[[49m^[[34mM-nM-^BM-0^[[39m
CSI n m
SGR - 选择图形呈现。
尝试描述上述输出:
(^[[39m
: 前两个字符被 cat -v
转义了。我们得到了 ESC[39m
。)
^[[39m^[[0m^[[49m
:这些代码是来自于print $PROMPT
输出中的%{%f%k%b%}
部分。 ^[[39m
用于重置默认前景色,^[[0m
用于重置所有效果,而[[49m
则用于重置默认背景色。^[[40m^[[39m me@mycomputer
:背景色为黑色,前景色为默认颜色。^[[44m^[[30m M-nM-^BM-0
:背景色为蓝色,前景色为默认颜色(M-nM-^BM-0
是cat -v
转义后的形式,代表着)。从这里可以看出,提示符输出了一个pwd的背景蓝色代码。您可以使用以下命令进行检查:
print -P '%b%F{red}co%F{green}lo%F{blue}rs%f%b'
(注意:第一个'%b')
sh
,可以使用发行版中的16colors.sh
,并查看sh ./16colors.sh
的输出来检查终端的颜色调色板设置是否正确。(例如,可以在https://www.in-ulm.de/~mascheck/various/xterm/16-table.html找到示例xterm默认设置的输出。)^[[44m
或^[[34m
)映射为对我们眼睛来说是灰色的颜色。^[[39m^[[0m^[[49m^[[40m^[[39m me@mycomputer ^[[44m^[[30mM-nM-^BM-0^[[30m ~ ^[[49m^[[34mM-nM-^BM-0^[[39m
- Tejay Cardon