ahm*_*bri 9 macos zsh command-prompt iterm zshrc
这是我的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'
Run Code Online (Sandbox Code Playgroud)
看起来像
当我移动$(git_prompt_info)
到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)'
Run Code Online (Sandbox Code Playgroud)
看起来像
看右边的间距?箭头也在错误的地方开始?
我怎样才能解决这个问题?
ZyX*_*ZyX 11
我相信$fg[color]
包含的东西\e[32m
?如果是这样,必须将其括起来%{…%}
表示此序列没有宽度.但是如果你忘记了整个事情并使用%F{color}
前景,%K{color}
背景和%f
/ %k
取代它们,那就更好了$reset_color
.你必须这样做
setopt promptsubst
setopt promptpercent
Run Code Online (Sandbox Code Playgroud)
为了使这个工作(你可能已经有了这个).
这个差距是颜色的宽度,它们是你错误的光标位置的原因.这里的问题是zsh无法查询终端,问题是"嘿,我输出了一些文字,它的宽度是多少?"而是必须自己计算宽度.
归档时间: |
|
查看次数: |
2538 次 |
最近记录: |