1

我的 Zsh 提示光标有时(实际上大部分时间)应该是下面的一行(附上截图):

在此处输入图像描述

如果我多次按回车,提示似乎得到修复:

在此处输入图像描述

我的第一个想法是这是我的自定义提示中的一个错误,所以我用一个只包含一个数字的简单提示替换了提示:

PROMPT='> '

但错误仍然存​​在。

关于可能缺少什么的任何线索?

你可以在这里找到我的主题:http: //pastebin.com/cSJwGWKZ

请注意,我使用的是 Oh My Zsh。

编辑:当我到达终端底部(通过按回车键)时,提示似乎得到修复。

4

1 回答 1

6

罪魁祸首是%{$(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覆盖部分PROMPTif 两者都变长和/或终端窗口变窄。如果RPROMPT与输入保持在同一行,一旦输入到达它,它将被隐藏(如果您删除一些输入,它将重新出现)。

于 2014-05-20T05:45:11.507 回答