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