XQuartz 命令后的垃圾字符

XQuartz 命令后的垃圾字符

我运行的是 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。

相关内容