2012-12-27 19 views
6

Ecco il mio ZSH pronta temaZSH RPROMPT spazio strano?

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' 

che assomiglia a questo

Quando sposto il $ (git_prompt_info) per 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)' 

sembra che questo enter image description here

Vedi la spaziatura a destra? Anche la freccia inizia nel posto sbagliato?

Come posso risolvere questo?

Grazie

+0

Ehi, potresti condividere quella combinazione di colori? So che questo thread è vecchio, ma forse lo hai ancora =/ – roboslone

risposta

9

Credo $fg[color] contiene qualcosa come \e[32m? In tal caso, deve essere racchiuso tra %{…%} per indicare che questa sequenza non ha larghezza. Ma molto meglio se ti dimentichi del tutto e usa %F{color} per primo piano, %K{color} per lo sfondo e %f/%k per annullarli al posto di $reset_color. È necessario fare

setopt promptsubst 
setopt promptpercent 

in modo che funzioni (probabilmente lo si ha già).

Questo spazio è la larghezza dei colori e sono la ragione per cui si ha una posizione sbagliata del cursore. Il problema è che zsh non può interrogare il terminale con la domanda "Ehi, ho emesso del testo, qual è la sua larghezza?" Invece di calcolare la larghezza da sola.

+0

Ora il mio file assomiglia a questo http://pastebin.com/icU1e62D sembra questo http://f.cl.ly/items/ 3i3l2V3k3d1d1I321I1s/schermo% 20Shot% 202012-12-28% 20at% 201.26.36% 20 AM.png ho provato ad aggiungere setopt promptsubst setopt promptpercent , ma non ha funzionato – ahmedelgabri

+0

@Gabri funziona o hai vinto' Lo vedremo (prima consente l'espansione di '$()', il secondo make '% {' work). Non vedo alcun problema in quello che hai mostrato qui. – ZyX

+0

i completamenti della scheda non funzionano correttamente. Ho uno spazio aggiuntivo e se si fa clic su backspace per cancellare ciò che hai scritto, l'ultima lettera sarà ancora visibile, controlla questo http://cl.ly/3v1U2k1b2f3h – ahmedelgabri