加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

在zsh中使用bash complete -C

发布时间:2020-12-14 01:39:58 所属栏目:Linux 来源:网络整理
导读:zsh bash完成是否支持完成-C’自定义命令完成’命令? 我以前在脚本中编写了一个bash完成函数,我启用了它 complete -C 'tu --get-bash-completion' tu 我希望使用zsh的同事能够使用完成,所以我尝试使用这样的.zshrc文件测试bash完成兼容性: autoload compin
zsh bash完成是否支持完成-C’自定义命令完成’命令?

我以前在脚本中编写了一个bash完成函数,我启用了它

complete -C 'tu --get-bash-completion' tu

我希望使用zsh的同事能够使用完成,所以我尝试使用这样的.zshrc文件测试bash完成兼容性:

autoload compinit
compinit
autoload bashcompinit
bashcompinit
complete -C 'tu --get-bash-completion' tu

当我尝试使用此完成时,看起来zsh正在调用完成脚本而没有bash调用它的参数(firstword,current_word,previous_word).

tom-mba:~ tomb$zsh
tom-mba% tu Traceback (most recent call last):
  File "/usr/local/bin/tu",line 7,in <module>
    execfile(__file__)
  File "/Users/tomb/Dropbox/code/TrelloCardUpdate/bin/tu",line 3,in <module>
    cli.CLI()
  File "/Users/tomb/Dropbox/code/TrelloCardUpdate/trellocardupdate/cli.py",line 156,in CLI
    getcompletion(sys.argv[i+1:i+4])
  File "/Users/tomb/Dropbox/code/TrelloCardUpdate/trellocardupdate/cli.py",line 86,in getcompletion
    assert len(args) == 3,[args,sys.argv]
AssertionError: [[],['/usr/local/bin/tu','--get-bash-completion']]

我在mac上使用自制软件安装的zsh:

tom-mba:~ tomb$zsh --version
zsh 5.0.2 (x86_64-apple-darwin11.4.2)
tom-mba:~ tomb$which zsh
/usr/local/bin/zsh

解决方法

截至2013年11月10日,zsh的bashcompinit并没有完成这样的完整工作.显然compadd -U是一种zsh方式,可以对完成进行细粒度控制,其中脚本确切地确定了要建议的匹配项.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读