2012-02-09 12 views
5

Utilizzando zsh, vorrei aggiungere un collegamento per andare nella directory padre. Easy Peasy per farlocome ridisegnare il prompt zsh dopo l'azione del widget

cdup() { 
    builtin cd .. 
} 
zle -N cdup 
bindkey "your_favorite_key_code" cdup 

Ma questo non significa ridisegnare il prompt, qualcuno sa come farlo?

Anche le scorciatoie obbligatorie per fare pushd/popd possono essere un'idea, per essere sinceri ho preso quelle idee dal "guscio di pesce".

risposta

6

Ho recentemente implementato la stessa identica cosa. La soluzione migliore che posso venire in mente è la seguente

cdup() { 
    cd .. 
    zle reset-prompt 
} 

Il zle reset-prompt è il bit che ottiene per ridisegnare il prompt.

Edit:
mia versione precedente della risposta ha avuto un printf '\n' nella risposta. Questo era necessario se il prompt era un prompt su più righe. Tuttavia, a quanto pare, zsh ha tonnellate di problemi con le istruzioni di mutli-line, quindi l'ho lasciato cadere.

+0

Grazie per la risposta, mantiene anche ciò che è attualmente scritto sulla linea di prompt! Il 'printf '\ n'' è benvenuto perché quando cambio di directory ho il nuovo pwd stampato. – lolesque