zsh + powerline:使用长命令行提示消失

时间:2016-03-09 02:43:00

标签: linux command-line zsh prompt powerline

asciicast

正如你所看到的,当我写一个长命令行时,zsh提示消失了,我不知道为什么

.zshrc

autoload -U compinit promptinit
compinit
promptinit

zstyle ':completion:*:descriptions' format '%U%B%d%b%u'
zstyle ':completion:*:warnings' format '%BDésolé, pas de résultats pour : %d%b'
zstyle ':completion:*' menu select=2
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s


function powerline_precmd() {
    PS1="$(~/powerline-shell.py $? --shell zsh 2> /dev/null)"
}

function install_powerline_precmd() {
    for s in "${precmd_functions[@]}"; do
        if [ "$s" = "powerline_precmd" ]; then
            return
        fi
    done
    precmd_functions+=(powerline_precmd)
}

if [ "$TERM" != "linux" ]; then
    install_powerline_precmd
fi

bindkey ';5D' emacs-backward-word
bindkey ';5C' emacs-forward-word

我使用Xfce4-terminal,我在Debian stretch上

由于

1 个答案:

答案 0 :(得分:1)

这是由于zsh如何决定提示的长度。通常使用标准命令它可以自己正常工作,但是,运行python脚本并回显提示混淆它并且我无法正确修复它,之前添加%27{%} $(~/powerline-shell.py $? --shell zsh 2> /dev/null)之后str_extract使它看起来对我有用,但这只是基于我的电力线提示的临时工作。

更可行的修复方法是使用bash-powerline转储powerline-shell并使用bash命令编写,该命令与zsh交叉兼容。