为什么 zsh 在我的输出末尾添加“%”

why zsh adds "%" at the end of my output

我在我的 mac (oh-my-zsh) 上使用 zsh,我不明白为什么在我的输出末尾总是有这个字符:“%”

如果我不把 export TERM="xterm-256color" 放在我的 ~/.zshrc 中,我就没有那个字符:

通常使用颜色相反的粗体 %(或根的 #)来表示输出中的 "partial" 行。那是一行,不以换行符结尾。

因为它似乎取决于 TERM 的值,我怀疑该值与终端仿真器的设置不兼容。与第二个屏幕截图中显示的警告相反,您实际上应该 ~/.zshrc 中设置 TERM(或 shell 会话中的任何位置)。 TERM 应始终由终端仿真器本身设置。它的值(结合 terminfo 终端能力数据库 )告诉 shell 和其他程序,终端仿真器支持哪些功能以及如何使用它们。如果 shell 中的值发生变化,终端仿真器将不会知道。这可能会导致程序发送终端仿真器无法正确理解或根本无法理解的控制代码。

要更改 TERM 的值,您应该在终端仿真器设置中进行更改。根据 iTerm 2 FAQ,可以在 Preferences->Profiles->Terminal->Report Terminal Type.

中找到设置

我个人将 export PROMPT_EOL_MARK='' 放在我的 ~/.zprofile 中并隐藏了角色。