【发布时间】:2017-08-02 00:34:24
【问题描述】:
我有一个命令xssh,它是原始ssh 命令的包装。这个命令我需要一个Zsh补全,补全规则和zsh完全一样。所以我在_xssh 文件中添加了以下内容
#compdef xssh
compdef xssh=ssh
我可以加载命令的补全,但问题是,如果这是我第一次在终端中使用xssh 命令并输入<TAB>,我必须输入两次<TAB>,以便完成就可以开始工作了。例如,我必须输入xssh ho<TAB><TAB> 才能得到xssh hostname。但在那之后,我只需要输入xssh ho<TAB> 即可获得xssh hostname(hostname 在我的.ssh/config 文件中是唯一的)。那么你知道如何解决这个问题吗?
如果我像其他命令一样从头开始编写完成,则不会发生这种情况
【问题讨论】:
-
@Gal 谢谢。但我的问题有点不同。例如,如果我启动终端并输入
xssh ho<TAB><TAB>,它将完成我想要的内容。在同一个终端内,下次如果我输入xssh ano<TAB>,它将完成内容,立即为我说xssh another_host。对我来说,compdef xssh=ssh似乎不会真正从 ssh 加载完成或将其分配给 xssh 命令,直到它确实需要这样做。我的其他自定义 Zsh 补全按我的预期完美运行。 -
@zijuexiansheng 你找到解决办法了吗?我有同样的问题
标签: zsh-completion