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 次 |
| 最近记录: |