recursos finalización Zsh?
-
05-10-2019 - |
Pregunta
Zsh finalización es una bestia bastante complejo, y me encuentro con el hombre-página muy difícil de leer, sobre todo que le falta (simple) ejemplos de todas las diversas formas optspec etc. No he logrado encontrar nada en línea a mí mismo sin embargo, tan ayuda sería muy apreciada.
A modo de ejemplo, esto es lo que estoy luchando por el momento, y el hombre-página zshcompsys
no ofrece aclaraciones. Tengo
#compdef mtt2
_arguments -s : \
'-h' '--help' \
'-V' '--version' \
':foobars:(foo bar baz)'
mtt2 <TAB>
Ahora, cuando escribo foo
Sólo me ofrecieron, y bar
baz
como terminaciones, por qué no -h
, --help
, etc, así?
¿Qué magia necesito para pasar a _arguments
con el fin de ser ofrecido todas las posibilidades?
Solución
Se necesita comenzar argumento de que usted complete con guión (quiero decir que el argumento de que escribe a prueba, no argumento _arguments
). Debe buscar ya sea en zstyle
, intenta pasar -h
y otros como :foobars:
o incluso utilizar directamente compadd
. Ejemplos:
- con compadd:
#compdef test A=( -h --help -V --version foo bar baz ) compadd -a A
-
-h
y otros Pasando al igual que: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)"
El estilo de terminación - Controles
zstyle
. Se describe en «EJECUCIÓN DE CONFIGURACIÓN DEL SISTEMA» en la secciónman zshcompsys
y probablemente tiene una opción que permitirá completar de interruptores, pero no sé controla qué opciones que.
Otros consejos
Me pareció que para ser una buena introducción: http: //www.linux-mag. com / id / 1106 /
Está detrás de un inicio de sesión de la pared, pero no se ha especificado ...