Script de autocompletado de Bash con El Capitán

0

Hace aproximadamente una semana, agregué lo siguiente al final de mi script .bash_profile para configurar la finalización de pestañas 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].*$//')
    else 
        #We entered a section number
        opts=$(find -E "/usr/share/man" -regex ".*/man${prev}/(${cur}.*)\.${prev}.*$" | sed -E "s/^.*\/(.*)\.${prev}.*$//")
    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 de expresiones regulares del script en mi terminal, por lo que estoy seguro de que siguen siendo correctos. ¿Alguien puede explicar por qué sucede esto y / o cómo solucionarlo?

¡Gracias!

ACTUALIZACIÓN: Después de investigar un poco más, descubrí 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 desaparecen. . Todavía puedo hacer "man pthread_create" y obtener resultados, por lo que esas carpetas deben haberse ido a algún lugar. Volveré cuando sepa más.

    
pregunta ThomasAlbet 03.10.2015 - 21:29

1 respuesta

1

Después de investigar un poco más, descubrí que puedo hacer "man -W" para obtener una lista de las carpetas que el hombre verifica cuando busca las páginas en sí mismas, incluida aquella en la que se encuentra pthread_create.

P.S. Parece que ahora está en la carpeta de la aplicación Xcode.

    
respondido por el ThomasAlbet 04.10.2015 - 09:12

Lea otras preguntas en las etiquetas