zsh的bash完成支持complete -C '自定义完成命令' 命令
吗?
我之前写了一个bash完成函数的脚本,我使用以下命令启用:
complete -C 'tu --get-bash-completion' tu
我希望我的同事们使用zsh时也能够使用补全功能,因此我尝试使用以下.bashrc文件测试与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上使用了Homebrew安装的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