0

在最新的 macOS High Sierra、iTerm2、zsh 和 oh-my-zsh 上,我注意到使用多行提示时的制表符补全不再正确刷新。我已经在两台不同的机器上验证了这个问题,我想知道:

  1. 如果您还可以验证这对您来说是个问题
  2. 如何开始确定导致此问题的系统
  3. 如果您知道解决方法

示例提示:

PROMPT="$(virtualenv_info) %n at %~ on %M $(vcs_info)
%(!.#.$) "

产生:

(myvirtualenv) me at ~/source/some-repo on localhost [master]
$

问题:

当尝试完成类似lsor的命令时cd,点击 TAB 查看子目录会导致后续打印覆盖包含提示的行:

(myvirtualenv) me at ~/source/some-repo on localhost [master]
$ ls some-f...

点击TAB

(myvirtualenv) me at ~/source/some-repo on localhost [master]
$ ls some-folder/

再次按 TAB

  some-folder/
folder-1/    folder-2/    folder-3/

上面的输出覆盖了包含提示的行。我试过设置语言环境信息和不同种类的换行符。这个多行提示在我拥有的 CentOS AWS 机器上运行的旧版本 zsh 上仍然可以正常工作,明天我可以确认它是否仍在 < 10.13 macOS 机器上工作。

4

1 回答 1

2

我可以通过推断设置来缩小范围COMPLETION_WAITING_DOTS,我现在发现在这个 oh-my-zsh 问题中得到了证实。看来此代码在 High Sierra 中的行为有所不同,因此我将对其进行研究以寻找解决方法或可能的修复方法。现在我的解决方法是删除我的COMPLETION_WAITING_DOTS="true"设置。

于 2017-09-29T00:37:17.300 回答