有条件地为 ZSH 提示着色
Conditionally Color ZSH Prompt
我正在尝试根据上一个命令的 return 代码为我的提示着色。我有以下内容:
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%} '
我的提示现在是这样的:
您忘记了参数扩展的 $
,并且您 没有 在 ?
前面加上美元;它是条件标志,而不是参数引用。
%(?.%{$fg_bold[cyan]%}.%{$fg_bold[red]%})
^ ^
另一种方法是将 return 代码(当不同于 0 时)发送到 kill -l
,以便您可以显示错误代码的名称。
这是我用的(右边的提示)
setopt PROMPT_SUBST
RPS1='%(?..%{$fg_bold[red]%}[%? $(kill -l $?)]%{${reset_color}%} )%T' # time
我正在尝试根据上一个命令的 return 代码为我的提示着色。我有以下内容:
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%} '
我的提示现在是这样的:
您忘记了参数扩展的 $
,并且您 没有 在 ?
前面加上美元;它是条件标志,而不是参数引用。
%(?.%{$fg_bold[cyan]%}.%{$fg_bold[red]%})
^ ^
另一种方法是将 return 代码(当不同于 0 时)发送到 kill -l
,以便您可以显示错误代码的名称。
这是我用的(右边的提示)
setopt PROMPT_SUBST
RPS1='%(?..%{$fg_bold[red]%}[%? $(kill -l $?)]%{${reset_color}%} )%T' # time