6

我刚刚切换到 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"      
}
4

1 回答 1

4

这也作为 zsh 5.3 版本中的多行提示问题出现。截至 2017 年 1 月 13 日,尚未发布补丁。可以在这个 prezto issue中找到讨论和解释。

更多关于令人讨厌的 zsh 问题本身的讨论可以在这里找到

希望 zsh 项目会出现一个修复程序。如果没有,该 github 存储库中提到的一些解决方法是使您的PROMPT变量只有一行,输出precmd函数中的任何其他行。然而,这似乎很痛苦,所以在它被修复(或决定成为“功能”)之前,最简单的修复听起来像是回滚到 zsh 5.2。

于 2017-01-14T00:00:48.513 回答