在最新的macOS High Sierra,iTerm2,zsh和oh-my-zsh上,我注意到使用多行提示时选项卡完成不再正确刷新。我已经在两台不同的机器上验证了这个问题,我想知道:
PROMPT="$(virtualenv_info) %n at %~ on %M $(vcs_info)
%(!.#.$) "
产生:
(myvirtualenv) me at ~/source/some-repo on localhost [master]
$
为ls
或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/
上面的输出会覆盖包含提示的行。我试过了setting locale info and different kinds of newlines。这个多行提示仍然可以在我拥有的CentOS AWS盒上运行的旧版zsh上正常运行,明天我可以确认它是否仍在使用< 10.13 macOS机器。
答案 0 :(得分:2)
我能够通过扣除COMPLETION_WAITING_DOTS
设置来缩小范围,我现在已经在this oh-my-zsh issue中证实了这一点。看来这段代码在High Sierra中的行为有所不同,所以我将研究解决方法或可能的解决方法。目前我的解决方法是删除COMPLETION_WAITING_DOTS="true"
设置。