如何解决哦,我的 Zsh 在 iTerm2 中工作,但其他终端模拟器有显示问题
我在 macOS 上,使用带有 oh-my-zsh 的 zsh shell。
通常我使用 iTerm2,这是一个非常好的体验。但是,当我使用另一个终端模拟器(例如 vim 中的 :term
或 Terminal.app)
我看到一个奇怪的问题,命令被打印在输出中。我不知道为什么会这样或如何解决它。
这里是问题,在 vim 中使用 :term
:注意 ls
和 echo
在每种情况下如何打印在输出的开头,而 ~
是也重复了。
我在除 iTerm2 之外尝试过的每个终端模拟器中都遇到了这个问题:我已经尝试过
- 小猫,
- Terminal.app,
-
:term
在 vim 和 nvim 中(在 Terminal.app 或 iTerm2 中运行), - VSCode 中的集成终端,
有一个例外:(doom) emacs 中的 vterm 看起来很棒,就像 iTerm2 一样。
我很确定它是由 Oh My Zsh 以某种方式引起的,因为在我的 .zshrc
source $ZSH/oh-my-zsh.sh
(当然这不是解决办法,因为我想使用 omz!)
它似乎与我使用的任何特定 omz 插件无关,因为即使我注释掉 plugins = (...)
中的 .zshrc
行,问题仍然存在。
有谁知道会发生什么?我不太明白 oh-my-zsh.sh
文件中发生了什么,但我想它与其中的某些内容有关。
解决方法
我找到了罪魁祸首。如果我删除文件
$ZSH/lib/termsupport.zsh
(或将其重命名为具有不同的扩展名,因此它不是由 oh-my-zsh.sh
提供的),然后问题就会消失。这似乎是由于功能
omz_termsupport_precmd
和 omz_termsupport_preexec
所以修复似乎是:取消注释该行
DISABLE_AUTO_TITLE="true"
中的 .zshrc
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。