omf instalar shell autocomplete tab-completion fish

instalar - omf shell



¿Cómo puedo proporcionar complementos de pestañas a Fish Shell desde mi propio script? (2)

Debería crear una función de autocompletar pescado para su secuencia de comandos como se propone aquí y ~/.config/fish/completions o ponerla dentro de su carpeta ~/.config/fish/completions .

referencia: documentos de peces

Estoy ejecutando Ubuntu 13.10 y Fish 2.1.0. Quiero escribirme un script de Python para hacer algunas tareas desde la línea de comando. El script requerirá argumentos de línea de comando.

¿Cómo puedo escribir mi script de modo que fish pueda solicitar y obtener valores posibles para un argumento dado? La lista de valores potenciales es dinámica. Es decir, se determinará programáticamente (por ejemplo, una lista de nombres de carpetas que coincidan con algunos criterios).

El resultado final que estoy buscando es algo así como:

user@machine ~> myprog argument=fol<TAB> folder1 folder2 folder3

Donde myprog es mi archivo de script, argument es el argumento nombre y folder1 etc. son valores válidos generados por alguna función en mi script.

¿Es posible? y si lo es, cómo?


Adaptado del comentario de zanchey sobre GitHub :

Si tiene un programa myprog que toma la opción --_completion , puede escribir un único talón de finalización para myprog que se vea así:

complete --command myprog --arguments ''(myprog --_completion (commandline -cp)''

Su programa será invocado como myprog --_completion myprog some arguments here , y puede responder con las terminaciones apropiadas. Debería devolver solo el token actual que se está completando (también podría pasar esto al programa con (commandline -ct) , o usar el token para sí mismo), seguido opcionalmente por una pestaña y una breve descripción. Múltiples terminaciones se separan con nuevas líneas.

Notas:

Para las secuencias de comandos de Python específicamente, las siguientes bibliotecas pueden admitir terminaciones de peces en algún momento en el futuro (pero aún no lo hacen):