zsh - zsh - 如何在执行无效命令时自动重置会话;避免“断管”消息
问题描述
我在 iTerm2 上使用 oh-my-zsh。每次执行无效命令时,zsh 都会显示“Broken Pipe”消息。请看下面的屏幕截图:
我必须通过按“command+R”(Macbook)手动重置会话,以便恢复提示并再次开始使用 shell。
我希望 zsh/iTerm2 在执行无效命令的情况下自动恢复提示。
我可以在 zsh 中进行任何设置/配置以实现所需的行为吗?
编辑:我的 iTerm 配置为使用 zsh 而不是登录 shell。
解决方案
经过一番研究,我找到了解决方案。
我们可以使用 zsh 的 ERROR 陷阱来重新启动 shell,以防命令出错或命令以错误状态退出。
我在 .zshrc 文件中写了以下内容:
TRAPZERR() {
if [[ $? -gt 0 ]];then
/Applications/iTerm.app/Contents/MacOS/iTerm2 --launch_shell
fi
}
它奏效了!
推荐阅读
- ios - 只要几个文本字段为空,就禁用按钮
- java - 应用程序没有从编辑文本中获得价值,似乎在跳行
- elasticsearch - 根据匹配的数量应用越来越慢的查询过滤器
- python - IndexError:使用正则表达式列出超出范围的索引
- javascript - Angular 7 地图运算符不适用于 httpClient Observable
- arrays - MQL5:如何对数组的值进行排名
- javascript - 如何在右中心对齐 Chart JS“图例”
- batch-file - 如何修复“'rm'不是内部或外部命令、可运行程序或批处理文件。” cmd中的错误
- sql - sql - 为具有最低值的每个组选择单个 ID
- c# - Topshelf NLog - Windows 服务(控制台应用程序)未按预期工作