我刚刚切换到Zsh,但我遇到了一个奇怪的问题:每次按Tab键时,提示都会上升一行,从而吃掉上面的内容。
为了更清楚地证明问题,我创建了一个GIF:
我正在使用自定义主题和Oh My Zsh。您可以在此处找到主题:http://pastebin.com/12dZtZf3。
编辑:问题似乎存在于我的主题中,因为使用其他主题可以解决问题。
编辑:罪魁祸首似乎是在打印破折行和提示上方日期的函数中:
_professional_prompt_header() {
echo -n "$bg[grey]"
for i in {0..$(( $(tput cols) / 2 - 6 ))}; do
echo -n "--"
done
# Uncommenting this line fixes the problem.
# Tried echo without -n and print, but no success.
echo -n " %*$reset_color"
}
答案 0 :(得分:4)
这也是zsh 5.3发布中多行提示的问题。截至2017-01-13,尚未发布补丁。可以在this prezto issue中找到讨论和解释。
有关违规zsh问题的更多讨论可能是found here。
希望zsh项目能够出现修复。如果没有,那个github repo上提到的一些变通方法是让你的precmd
变量只有一行,输出static ArrayList<String> SavedCustomPasswords = new ArrayList<>();
函数中的任何其他行。然而,这似乎是一种痛苦,所以在修复(或决定成为“特征”)之前,最简单的修复听起来就像是回滚到zsh 5.2。