0

asciiccast

可以看到,当我写了很长的命令行时,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 伸展

谢谢

4

1 回答 1

1

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

一个更可行的解决方法是转储 powerline-shell 并使用完全用 bash 命令编写的bash-powerline,它与 zsh 交叉兼容。

于 2016-06-08T08:45:53.567 回答