升级 zsh 后完成停止工作

升级 zsh 后完成停止工作

oh-my-zsh以前,每当我 ssh 进入计算机时,我一直使用这个方便的脚本来设置选项卡颜色:

# iTerm2 window/tab color commands
#   http://code.google.com/p/iterm2/wiki/ProprietaryEscapeCodes
tab-color() {
    echo -ne "\033]6;1;bg;red;brightness;$1\a"
    echo -ne "\033]6;1;bg;green;brightness;$2\a"
    echo -ne "\033]6;1;bg;blue;brightness;$3\a"
}
tab-reset() {
    echo -ne "\033]6;1;bg;*;default\a"
    trap - INT EXIT
}

# Change the color of the tab when using SSH
# reset the color after the connection closes
color-ssh() {
    if [[ -n "$ITERM_SESSION_ID" ]]; then
        trap "tab-reset" INT EXIT
        if [[ "$*" =~ "production|ec2-.*compute-1" ]]; then
            tab-color 255 0 0
        else
            tab-color 144 181 80 #0 255 0
        fi
    fi
    ssh $*
}
compdef _ssh color-ssh=ssh

alias ssh=color-ssh

然而,今天我发现自动完成功能现在被破坏了!如果我运行此脚本,我ssh将不再自动完成。我如何诊断发生了什么?

编辑:禁用oh-my-zsh并获取文件会导致错误:command not found: compdef

答案1

好的,我找到了解决方案:删除所有zcompdump文件解决了问题:

rm ~/.zcompdump*

答案2

我运行了以下命令并修复了选项卡完成。

autoload -U compinit && compinit
autoload -U bashcompinit && bashcompinit

相关内容