这是我的 ZSH 提示主题
function git_prompt_info() {
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
echo "$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_PREFIX$(current_branch)$ZSH_THEME_GIT_PROMPT_SUFFIX"
}
PROMPT='$fg[yellow]%}⚡︎ $fg[cyan]%~ $(git_prompt_info)
%{$reset_color%}→ '
ZSH_THEME_GIT_PROMPT_PREFIX="[git:"
ZSH_THEME_GIT_PROMPT_SUFFIX="]$reset_color"
ZSH_THEME_GIT_PROMPT_DIRTY="$fg[red]+"
ZSH_THEME_GIT_PROMPT_CLEAN="$fg[green]"
RPROMPT='%T'
看起来像
当我移动$(git_prompt_info)
to RPROMPT
function git_prompt_info() {
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
echo "$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_PREFIX$(current_branch)$ZSH_THEME_GIT_PROMPT_SUFFIX"
}
PROMPT='%T $fg[yellow]%}⚡︎ $fg[cyan]%~
%{$reset_color%}→ '
ZSH_THEME_GIT_PROMPT_PREFIX="[git:"
ZSH_THEME_GIT_PROMPT_SUFFIX="]$reset_color"
ZSH_THEME_GIT_PROMPT_DIRTY="$fg[red]+"
ZSH_THEME_GIT_PROMPT_CLEAN="$fg[green]"
RPROMPT='$(git_prompt_info)'
看起来像
看到右边的间距了吗?箭头也从错误的地方开始?
我怎样才能解决这个问题?
我相信$fg[color]
包含类似的东西\e[32m
?如果是这样,则必须将其括在%{…%}
表明该序列没有宽度。但如果你忘记整件事并使用,那就更好了%F{color}
对于前景,%K{color}
用于背景和%f
/%k
取消它们来代替$reset_color
。你必须做
setopt promptsubst
setopt promptpercent
为了让它发挥作用(你可能已经有了这个)。
该间隙是颜色的宽度,它们是光标位置错误的原因。这里的问题是 zsh 无法查询终端“嘿,我输出了一些文本,它的宽度是多少?”而不必自己计算宽度。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)