【问题标题】:Conditionally Color ZSH Prompt有条件地颜色 ZSH 提示
【发布时间】:2015-09-02 17:01:01
【问题描述】:

我正在尝试根据上一个命令的返回码为我的提示着色。我有以下内容:

PROMPT='%{$fg_bold[cyan]%}%~$(git_prompt_info) %($?.%{fg_bold[cyan]%}.%{$fg_bold[red]%})»%{$reset_color%} '

具体来说,我在%($?.%{fg_bold[cyan]%}.%{$fg_bold[red]%}) 部分遇到了问题。

不幸的是,我的提示最终看起来像这样:

我做错了什么?

编辑:

修正我的错字后,我现在有:

PROMPT='%{$fg_bold[cyan]%}%~$(git_prompt_info) %($?.%{$fg_bold[cyan]%}.%{$fg_bold[red]%})»%{$reset_color%} '

我的提示现在看起来像这样:

【问题讨论】:

    标签: zsh prompt zshrc


    【解决方案1】:

    您忘记了用于参数扩展的$,并且您不要在? 前面加一个美元;它是条件的标志,而不是参数引用。

    %(?.%{$fg_bold[cyan]%}.%{$fg_bold[red]%})
      ^   ^
    

    【讨论】:

    • 哈哈,是的,刚刚看到添加了它,但仍然有一些奇怪的行为。我会更新问题
    • 第二次修复后完美。谢谢!
    【解决方案2】:

    另一种方法是将返回代码(当不同于 0 时)发送到 kill -l,以便您可以显示错误代码的名称。

    这是我使用的(用于右侧的提示)

    setopt PROMPT_SUBST
    RPS1='%(?..%{$fg_bold[red]%}[%? $(kill -l $?)]%{${reset_color}%} )%T' # time
    

    【讨论】:

    • 确实很有趣,我会考虑一下,但我的偏好在我的提示中更微妙。不过感谢分享
    猜你喜欢
    • 1970-01-01
    • 2015-09-20
    • 2019-04-12
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 2023-04-04
    • 1970-01-01
    • 2012-12-01
    相关资源
    最近更新 更多