risorsa completamento Zsh?
-
05-10-2019 - |
Domanda
Zsh completamento è una bestia piuttosto complesso, e trovo l'uomo-page molto difficile da leggere, in particolare che manca (semplice) esempi di tutte le varie forme optspec ecc io non sono riuscito a trovare nulla in linea me stesso eppure così l'aiuto sarebbe apprezzato.
A titolo di esempio, ecco cosa sto lottando con in questo momento, e l'uomo-page zshcompsys
non offre alcun chiarimento. Ho
#compdef mtt2
_arguments -s : \
'-h' '--help' \
'-V' '--version' \
':foobars:(foo bar baz)'
mtt2 <TAB>
Ora, quando digito foo
Sono solo offerto, bar
e baz
come completamenti, perché non -h
, --help
, ecc, così?
Che magia ho bisogno per passare a _arguments
al fine di offrire tutte le possibilità?
Soluzione
È necessario avviare argomento che si completa con il precipitare (intendo dire che l'argomento che si digita a prova, non tesi _arguments
). Si dovrebbe guardare sia zstyle
, tenta di passare -h
e altri, proprio come :foobars:
o anche utilizzare direttamente compadd
. Esempi:
- Direttamente utilizzando compadd:
#compdef test A=( -h --help -V --version foo bar baz ) compadd -a A
- Passando
-h
e altri, proprio come:foobars:
:#compdef test A=( -h --help -V --version ) _arguments \ - foobars \ ':foobars:(foo bar baz)' \ - options \ ":arguments:($A)"
oA=( -h --help -V --version foo bar baz ) _arguments \ ":::($A)"
- Controlli
zstyle
stile completamento. E 'descritto nella sezione «ESECUZIONE CONFIGURAZIONE DEL SISTEMA» inman zshcompsys
e probabilmente ha un'opzione che consentirà il completamento di interruttori, ma non so controlli di opzione.
Altri suggerimenti
Ho trovato questo per essere una buona introduzione: http: //www.linux-mag. com / id / 1106 /
E 'una procedura di accesso a parete, ma non ha specificato ...