Zsh完成需要按两次<tab>

时间:2017-08-02 00:34:25

标签: zsh-completion

我有一个命令xssh,它是原始ssh命令的包装器。我需要为此命令执行Zsh完成,并且完成规则与zsh完全相同。所以我将以下内容添加到_xssh文件

#compdef xssh
compdef xssh=ssh

我可以加载命令的完成,但问题是,如果它是第一次在终端中使用xssh命令并键入<TAB>,我必须键入<TAB>两次,以便完成可以开始工作。例如,我必须输入xssh ho<TAB><TAB>才能获得xssh hostname。但在此之后,我只需输入xssh ho<TAB>即可获得xssh hostnamehostname在我的.ssh/config文件中是唯一的。所以你知道如何解决这个问题吗?

如果我从头开始编写完成,就像我为其他命令所做的那样

,这种情况不会发生

1 个答案:

答案 0 :(得分:0)

我有同样的问题。

我的_gd中有一个名为fpath的完成文件 ,如下所示:

#compdef gd
function _gd {
   ... my code ...
   _describe gd list
}

我第一次启动外壳时,需要按两次Tab键才能工作,然后再按一次。

要解决此问题,我要做的就是删除function {}部分,所以现在看起来就像

#compdef gd
...mycode...
_describe gd list