ZSH中自定义iTerm配置文件切换脚本导致ssh Tab补全失效问题求助
ZSH中自定义iTerm配置文件切换脚本导致ssh Tab补全失效问题求助
大家好,我最近在折腾一个功能:让iTerm的配色方案在我ssh到特定主机时自动切换,目前是跟着Hector Leiva的一个有点年头的gist来做的,我用的环境是ZSH+oh-my-zsh。
现在自动切换配置文件的功能已经正常工作了,但遇到了个头疼的问题——ssh的Tab补全失效了:当我输入ssh之后按Tab键,zsh竟然给我补全文件/文件夹名称,而不是我预期的主机列表。但如果移除那个自定义的切换脚本,ssh的补全功能就完全正常。
我知道我的.zshrc里有一段zstyle配置,用来让ssh补全时读取额外的known-hosts文件,内容如下:
zstyle ':completion:*:*:ssh:*:hosts' known-hosts-files /etc/ssh/ssh_known_hosts ~/.ssh/known_hosts <some_path>/ssh-hostkeys/more_known_hosts
不过我已经试过把这段配置删掉,问题依然存在,所以应该不是这个配置导致的。
我怀疑是不是compdef的调用出了问题?我在脚本里用了这行命令:
compdef _ssh tabc=ssh
是不是这行代码没有起到预期的补全绑定作用?
另外补充一下:我没法用iTerm2自带的自动配置文件切换(在「Profiles」>「Advanced」里的功能),因为不是所有我连接的主机都能安装Shell Integration。
备注:内容来源于stack exchange,提问作者Andreas
相关产品推荐
相关产品推荐

