macos - Oh My Zsh 在 iTerm2 中工作,但其他终端模拟器有显示问题
问题描述
我在 macOS 上,使用带有oh-my-zsh的 zsh shell 。通常我使用iTerm2,这是一个非常好的体验。但是,当我使用另一个终端仿真器(例如:term
在 vim 或 Terminal.app 中)时,我看到了一个奇怪的问题,即命令打印在输出中。我无法弄清楚为什么会这样或如何解决它。
这是:term
在 vim 中使用的问题:注意在每种情况下如何在输出的开头打印 和 ,并且ls
也会重复。echo
~
我在除 iTerm2 之外尝试过的每个终端模拟器中都遇到了这个问题:我试过了
- 猫咪,
- 终端应用程序,
: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
推荐阅读
- excel - VBA - 删除不包含至少 1 个突出显示的单元格的所有行
- c# - 将 C# 类转换为具有自定义结构的 Json
- google-cloud-platform - Git post recieve hook with ssh key with google cloud platform with bitnami
- javascript - 在jquery中上下移动元素
- mysql - SQL——查找上两门或更多门课的学生
- java - Java 文件导入
- function - Kotlin:将对象列表转换为对象属性映射
- ios - Swift iOS 在表格视图中我可以在添加行后使用 reloadData 吗?
- python - 熊猫从具有名称列表的列中获取最常用的名称
- c - C:为什么没有得到我输出的最后一行?