罪魁祸首是%{$(echotc DO 1)%}
你的RPROMPT
,它在打印时将光标向下移动了一行RPROMPT
。当到达终端的底部时,没有额外的线可以向下移动,所以光标就保持在原来的位置。
根据您想要的位置,您RPROMPT
基本上有两种选择:
- 在与输入光标相同的行上(在 之后
λ
):
只需%{$(echotc DO 1)%}
从RPROMPT
:
RPROMPT='$(_git_time_since_commit) $(git_prompt_status) ${_return_status}%'
- 输入上方的一行(或任何其他行数):在您的开头
添加,这会将光标向上移动一行,打印正确的提示并向下移动一行:%{$(echotc UP 1)%}
RPROMPT
RPROMPT='%{$(echotc UP 1)%}$(_git_time_since_commit) $(git_prompt_status) ${_return_status}%{$(echotc DO 1)%}'`
注意:第二种方法可能会导致RPROMPT
覆盖部分PROMPT
if 两者都变长和/或终端窗口变窄。如果RPROMPT
与输入保持在同一行,一旦输入到达它,它将被隐藏(如果您删除一些输入,它将重新出现)。