%
(或根用户使用 #
)来表示输出中的“部分”行,即没有以换行符结尾的行。TERM
的值,我怀疑这个问题可能是终端仿真器的设置与该值之间不兼容所致。与您第二张截图中显示的警告相反,您实际上 不应该 在您的 ~/.zshrc
文件中(或者在 shell 会话中的任何位置)设置 TERM
。 TERM
应该始终由终端仿真器本身设置。它的值 (结合 terminfo
终端能力数据库)告诉 shell 和其他程序,终端仿真器支持哪些功能以及如何使用它们。如果在 shell 中更改了该值,终端仿真器将不知道该更改。这可能导致程序发送控制代码,终端仿真器无法正确理解或完全理解。TERM
的值,您应该在终端仿真器设置中更改。根据 iTerm 2 常见问题,设置位于 Preferences->Profiles->Terminal->Report Terminal Type。\r
之前打印%
和空格以进行换行或不换行。也许在某些终端上,事情会与ZSH的预期有所不同,导致%
出现在另一行上。 - Peter Cordes