[eside-ghost] Completar comandos en programa Bash
Jorge García - Bardok
bardok en gmail.com
Dom Feb 17 20:05:02 CET 2013
Buenas!
Jajaja, claro, al meter ahí el script hace un source, pero no llama al
complete... pero si lo metes en el propio fichero, al hacer el source, se
llama al complete... venía en el primer ejemplo que miré, pero como no
hablaba de meterlo en el directorio de inicialización, yo lo ejecutaba a
mano... en fin, que me he hecho yo solito la picha un lío ;)
P.D.: no tiene nada que ver y lo he puesto en el café, pero por si alguien
de aquí que no está en el café lo lee, si alguien quiere una paloma
domesticada y criada a mano desde que era un pichón, que me diga, que le
estoy buscando hogar (por privado, que nadie estropee este hilo más de lo
que lo estoy haciendo yo con esto). Está limpita y sin enfermedades y te la
puedes poner en el hombro en plan pirata :D
--
Jorge García (aka Bardok)
---
Sending A Message To All
Sending A Message To God
We Must Bring Light To The Darkness
In Time We Will Rise Above
"Ark - Heal The Waters"
2013/2/17 Jon Ander Hernandez <jonan.h en gmail.com>
> El día 17 de febrero de 2013 00:36, Jorge García - Bardok
> <bardok en gmail.com> escribió:
> > He estado investigando un poquillo (en Ubuntu) (info sacada de
> > http://tldp.org/LDP/abs/html/tabexpansion.html):
>
> La verdad es que casi todos los artículos sobre el autocompletado
> están obsoletos :-S, como este que está bastante bien para ver un poco
> la idea
> http://www.debian-administration.org/article/An_introduction_to_bash_completion_part_2
>
>
> Para obtener las variables cur y pre que apuntan a la palabra actual y
> a la previa se recomienda usar la función _get_comp_words_by_ref
> porque gestiona cuando el autocompletado se realiza por ejemplo en
> medio de una palabra (además creo recordar que también resolvía algún
> problema de compatibilidad entre versiones de Bash). Aunque acabo de
> descubrir que ahora se usa _init_completion, pero igual no está en
> squeeze porque hace 8 meses no la conocía.
>
> _animal()
> {
> local cur prev
> COMPREPLY=()
> _get_comp_words_by_ref cur prev
>
> COMPREPLY=( $( compgen -W '--gatito --perrito' -- $cur ) );
> } &&
> complete -F _animal animal.sh
>
>
> Te faltaba la llamada complete Bardok ;-)
>
>
> Un buena forma de mirar como implementar uno es mirando el git de debian:
>
>
> http://anonscm.debian.org/gitweb/?p=bash-completion/bash-completion.git;a=blob;f=completions/xsltproc
>
>
> Hay un montón de funciones interesantes y bien documentadas en el
> fichero bash_completion:
>
>
> http://anonscm.debian.org/gitweb/?p=bash-completion/bash-completion.git;a=blob_plain;f=bash_completion;hb=HEAD
>
>
> Pero para cosas sencillas la mejor manera y más simple es añadir un
> parametro --help y hacer que use la función _longopt (que parsea la
> salida de --help para las flags y autocompleta ficheros y directorios)
> y listo.
>
> complete -F _longopt animal.sh
>
>
> Un saludete! ;-)
>
> JonAn.
> _______________________________________________
> eside-ghost mailing list
> eside-ghost en listas.deusto.es
> https://listas.deusto.es/mailman/listinfo/eside-ghost
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://listas.deusto.es/mailman/private/eside-ghost/attachments/20130217/903a6548/attachment.html>
Más información sobre la lista de distribución eside-ghost