点击Zsh中的标签吃掉上面的行

时间:2014-05-08 14:04:00

标签: zsh oh-my-zsh

我刚刚切换到Zsh,但我遇到了一个奇怪的问题:每次按Tab键时,提示都会上升一行,从而吃掉上面的内容。

为了更清楚地证明问题,我创建了一个GIF:

enter image description here

我正在使用自定义主题和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"      
}

1 个答案:

答案 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。