Tho*_*mas 5 bash zsh zsh-completion
zsh bash完成支持complete -C 'custom command for completion' command吗?
我以前在脚本中编写了一个bash完成函数,我启用了它
complete -C 'tu --get-bash-completion' tu
Run Code Online (Sandbox Code Playgroud)
我希望使用zsh的同事能够使用完成,所以我尝试使用这样的.zshrc文件测试bash完成兼容性:
autoload compinit
compinit
autoload bashcompinit
bashcompinit
complete -C 'tu --get-bash-completion' tu
Run Code Online (Sandbox Code Playgroud)
当我尝试使用此完成时,看起来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']]
Run Code Online (Sandbox Code Playgroud)
我在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
Run Code Online (Sandbox Code Playgroud)
截至 2013 年 11 月 10 日,zsh 的 bashcompinit 无法进行complete这样的工作。显然compadd -U,zsh 是对完成进行细粒度控制的方式,其中脚本准确地确定要建议的匹配内容。
| 归档时间: |
|
| 查看次数: |
855 次 |
| 最近记录: |