我运行的是 Mac Catalina 10.15.6,并安装了 XQuartz 1.18.4。在 XQuartz 上运行任何成功命令后,以下字符将写入终端:64;1;2;6;9;15;18;21;22c。我的 .zshrc 文件中还有一个自定义提示,内容如下:
export PROMPT='%(?.%F{green}√.%F{red}X)%f %B%F{240}%1~%f%b %# '
当命令成功时,它只会显示绿色勾号,当命令失败时,它会显示红色 x。删除它后,字符不会显示在 XQuartz 中。因此,我的问题是:如何保留常规 zsh shell 的功能,并且在运行 XQuartz 时不显示字符?
答案1
一个肮脏的解决方案是将如下内容放入你的 .zshrc 文件中:
if [ "$TERM" = "xterm" ] ; then
PROMPT='%2~$ '
else
PROMPT='%(?.%F{green}√.%F{red}?%?)%F{blue}%2~$ '
fi
因为 xquartz 报告 xterm 而 Apple Terminal 报告 xterm-256color。