我的Zsh提示光标有时(实际上大部分时间)下面的一行是应该的(附加屏幕截图):
如果我多次输入,则提示似乎得到修复:
我的第一个想法是在我的自定义提示符中出错,所以我用一个只包含一位数字的简单替换了提示符:
PROMPT='> '
但错误仍然存在。
有关可能遗漏的内容的任何线索?
您可以在此处找到我的主题:http://pastebin.com/cSJwGWKZ。
请注意,我使用的是Oh My Zsh。
编辑:当我到达终端底部时(通过点击进入),提示似乎得到修复。
答案 0 :(得分:5)
%{$(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
的部分,如果两者都变长和/或终端窗口缩小。如果RPROMPT
与输入保持在同一行,则一旦输入到达它就会被隐藏(如果删除一些输入,它将重新发送)。