使用zsh + oh-my-zsh + iTerm2 + High Sierra的不同多线提示行为

时间:2017-09-27 05:29:24

标签: zsh iterm2 oh-my-zsh macos-high-sierra

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

  1. 如果您还可以验证这是一个问题
  2. 如何开始归零导致此问题的系统
  3. 如果您知道解决方法
  4. 示例提示:

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

    产生:

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

    问题:

    lscd等命令尝试制表时,按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/
    

    上面的输出会覆盖包含提示的行。我试过了setting locale info and different kinds of newlines。这个多行提示仍然可以在我拥有的CentOS AWS盒上运行的旧版zsh上正常运行,明天我可以确认它是否仍在使用< 10.13 macOS机器。

1 个答案:

答案 0 :(得分:2)

我能够通过扣除COMPLETION_WAITING_DOTS设置来缩小范围,我现在已经在this oh-my-zsh issue中证实了这一点。看来这段代码在High Sierra中的行为有所不同,所以我将研究解决方法或可能的解决方法。目前我的解决方法是删除COMPLETION_WAITING_DOTS="true"设置。