使用 zsh + oh-my-zsh + iTerm2 + High Sierra 的不同多行提示行为
Different multiline prompt behavior using zsh + oh-my-zsh + iTerm2 + High Sierra
在最新的 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 机器上工作。
我能够通过推导 COMPLETION_WAITING_DOTS
设置来缩小范围,我现在发现 this oh-my-zsh issue 证实了这一点。这段代码在 High Sierra 中的行为似乎有所不同,因此我将研究它以寻求解决方法或可能的修复方法。现在我的解决方法是删除我的 COMPLETION_WAITING_DOTS="true"
设置。
在最新的 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 机器上工作。
我能够通过推导 COMPLETION_WAITING_DOTS
设置来缩小范围,我现在发现 this oh-my-zsh issue 证实了这一点。这段代码在 High Sierra 中的行为似乎有所不同,因此我将研究它以寻求解决方法或可能的修复方法。现在我的解决方法是删除我的 COMPLETION_WAITING_DOTS="true"
设置。