zsh 启动报错(Powerline9k-theme 所示)

Zshell starting with an error (showed in Powerline9k-theme)

最近我安装了 Zshell 而不是 Bash。在此期间,然后我看到我的 $PATH 有 7 英里长,- 所以我决定尝试稍微清理一下。当我卸载 rvm(通过 运行 rvm implode 然后 rm -rf ~/.rvm)然后当我重新启动我的终端时,我现在看到一个错误:

如果我只是按ENTER,那么错误仍然存​​在。但是,如果我执行任何其他命令,它就会消失(lsechosource ~/.zshrc - 你的名字)。

如果我重新启动 iTerm(或打开一个新选项卡),- 错误会再次出现。

没有显示错误,- 所以如果我激活另一个主题,那么我看不到是否有错误。

我的直觉告诉我,这与我的道路有关,但我不确定。我的路径比安装 RVM 之前要短。

如果我重命名我的 ~/.zshrc- 文件,那么 Powerline9k- 主题将被停用,所以我看不到错误是否仍然出现。但是我试过了……然后一个无主题的 zshell 就启动了。

知道如何修复或调试吗?

编辑

我刚刚意识到它实际上可能是一个遗留错误,从我 运行 bash 的时候开始 - 所以我也添加了那个标签。

卸载所有使用该路径的应用程序并重新安装。这是唯一的方法。代替 rm,您应该使用 should 创建一个带有垃圾桶的别名。

查看他们关于 github 的文档,相关片段是 here

解决方案:

在您的 ~/.zshrc 中找到名为 POWERLEVEL9K_LEFT_PROMPT_ELEMENTS 的变量并删除 rbenv.

解释:

POWERLEVEL9K_LEFT_PROMPT_ELEMENTS 的默认值是 (context dir rbenv vcs)rbenv 可能是产生错误的段 - 在您卸载 rvm 之后,该段不能' t执行。

如果按照您所说的执行任何命令后视觉瑕疵立即消失,只需在 .zshrc 的末尾放置一个 echo -n 作为快速简便的修复方法,如果您是无法胜任调试任务,可能会导致您的机器出现更多问题。

这个问题不值得你花时间;)

编辑: 显然上面的方法不起作用。查看评论。

如果您对调试感兴趣,一个好的起点是将 set -xe(打印正在执行的每一行并在任何退出非零的行上中止)放在开头(在 shebang 行之后,或作为 shebang 中的标志)开始新的交互时执行的每个配置脚本 shell.

还考虑 set -xeuo pipefail 额外捕获和中止使用未设置的 shell 变量和命令 return 非零管道内部(例如 set -e 不会中止 false | true 因为整个行退出时状态为 0,但 -o pipefail 将在这样的行上中止)。值得注意的是,这些标志是 bash 特征,但由于 zshbash 的特征超集,它们也适用于 zsh