2012-12-27 10 views
6

は、ここで私はそれがこのenter image description hereZSH 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)' 

をRPROMPTする$(git_prompt_info)を移動すると、この

のように見える私の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' 

です右のスペースを参照してください?また、矢印は間違った場所で始まりますか?

どうすればこの問題を解決できますか?

おかげ

+0

ねえ、あなたはその配色を共有できますか?私はこのスレッドが古いことを知っていますが、おそらくあなたはまだそれを持っています=/ – roboslone

答えて

9

私は$fg[color]\e[32mのようなものが含まれていると考えていますか?その場合は、このシーケンスに幅がないことを示すには、%{…%}で囲む必要があります。しかし、全体を忘れて、フォアグラウンドに%F{color}、バックグラウンドに%K{color}$reset_colorの代わりに%f/%kをキャンセルすると、はるかに良いでしょう。これを有効にするには、

setopt promptsubst 
setopt promptpercent 

を実行する必要があります(これはおそらく既にあります)。

このギャップは色の幅であり、カーソルの位置が間違っている理由です。ここで問題となるのは、zshは "Hey、私はテキストを出力しました、その幅は何ですか?"という質問をターミナルに問い合わせることができず、代わりに独自の幅を計算する必要があるということです。

+0

私のファイルはこのようになりますhttp://pastebin.com/icU1e62D http://f.cl.ly/items/ 3i3l2V3k3d1d1I321I1s /スクリーン%20Shot%202012-12-28%20at%201.26.36%20 AM.png 私が追加しようとした にsetopt promptsubst にsetopt promptpercent が、それはそれが動作 – ahmedelgabri

+0

@Gabriを動作しませんでしたか、あなたが勝ちました」これを見ることができます(最初に '$()'を展開し、2番目に '%{' work)を展開します。私はあなたがここに示したものに何の問題も見ません。 – ZyX

+0

タブの補完が正しく機能していない余分なスペースがあります&最後に手紙を書いたものを削除するためにバックスペースをクリックした場合、これはまだチェックされますhttp://cl.ly/3v1U2k1b2f3h – ahmedelgabri