2013-10-29 13 views
5

Il supporto di completamento di zh bash complete -C 'custom command for completion' command?Utilizzo di bash completo -C in zsh


avevo scritto in precedenza una funzione di completamento di bash in script, che è possibile attivare con

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

vorrei i miei colleghi che fanno uso di zsh per essere in grado di utilizzare il completamento, così ho provato il test con un file .zshrc come questo per la compatibilità completamento bash:

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

Quando provo ad usare questo termine, sembra che zsh sta chiamando lo script completamento senza gli argomenti bash chiamate con (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']] 

sto usando zsh homebrew-installato su un Mac:

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

Risposta in arrivo, caldo sulla mailing list zsh! – Thomas

risposta

0

Dal Nov 10, 2013, bashcompinit di zsh non fa complete lavoro come questo. Apparentemente compadd -U è il modo zsh per avere il livello di controllo a grana fine sul completamento in cui uno script determina esattamente quali corrispondenze suggerire.