【问题标题】:zsh - How can I do automatic resetting of the session on invalid command execution; avoiding "Broken Pipe" messagezsh - 如何在执行无效命令时自动重置会话;避免“断管”消息
【发布时间】:2018-12-12 21:54:05
【问题描述】:

我在 iTerm2 上使用 oh-my-zsh。每次执行无效命令时,zsh 都会显示“Broken Pipe”消息。请看下面的截图:

我必须通过按“command+R”(Macbook)手动重置会话,以便恢复提示并再次开始使用 shell。

我希望 zsh/iTerm2 在执行无效命令时自动恢复提示。

我可以在 zsh 中进行任何设置/配置以实现所需的行为吗?

编辑:我的 iTerm 被配置为使用 zsh 而不是登录 shell。

【问题讨论】:

  • 不清楚是什么(oh-my-zsh?zsh?iTerm2 本身?)产生了该消息,或者你是如何启动zsh 的(是你的登录shell?你从.bashrc.bash_profile 启动它?iTerm2 是否配置为运行zsh 而不是您的登录shell?)
  • @chepner 我编辑了我的问题。我能够找到解决方案。谢谢!!

标签: zsh iterm2 oh-my-zsh


【解决方案1】:

在做了一些research之后,我找到了解决方案。

我们可以使用 zsh 的 ERROR 陷阱来重新启动 shell,以防命令出错或命令以错误状态退出。

我在 .zshrc 文件中写了以下内容:

TRAPZERR() {
if [[ $? -gt 0 ]];then
     /Applications/iTerm.app/Contents/MacOS/iTerm2 --launch_shell
fi
}

成功了!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-07
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2022-09-27
    相关资源
    最近更新 更多