0 votos

Bash Autocompletar script con El Capitán

Hace una semana, añadí lo siguiente al final de mi .bash_profile script para configurar la finalización de tabulación para las páginas de manual:

function _man_pages()
{
    local cur opts prev
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"      #Get the current word
    prev="${COMP_WORDS[COMP_CWORD - 1]}" #Get the previous word
    opts=""
    if [ "$prev" = "man" ];
    then
        #We didn't use a section number
        #This lovely regex converts from the file path to the name of the page
        opts=$(find -E "/usr/share/man" -regex ".*/man[1-9n]/(${cur}.*)\.[1-9n].*$" | sed -E 's/^.*\/(.*)\.[1-9n].*$/\1/')
    else 
        #We entered a section number
        opts=$(find -E "/usr/share/man" -regex ".*/man${prev}/(${cur}.*)\.${prev}.*$" | sed -E "s/^.*\/(.*)\.${prev}.*$/\1/")
    fi

    COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
    return 0
}

complete -F _man_pages man

Sin embargo, cuando actualicé a El Capitán esta mañana, dejó de funcionar. He ejecutado con éxito la parte regex del script en mi propio terminal, así que estoy seguro de que siguen siendo correctos. ¿Puede alguien explicar por qué sucede esto, y/o cómo solucionarlo?

Gracias.

ACTUALIZACIÓN: Después de investigar un poco más, he descubierto que todavía funciona para la mayoría de las páginas man, pero no para man 2 o man 3. Después de buscar en la carpeta correcta que estaba antes, las carpetas man2 y man3 han desaparecido. Todavía puedo hacer "man pthread_create" y obtener resultados, así que esas carpetas deben haber desaparecido en algún lugar. Volveré cuando sepa más.

1voto

user150166 Puntos 1

Después de indagar un poco más, descubrí que puedo hacer "man -W" para obtener una lista de las carpetas que man comprueba cuando busca las propias páginas, incluyendo aquella donde está pthread_create.

P.D. Parece que ahora está en la carpeta de aplicaciones de Xcode.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X