← Back to team overview

sslug-teknik team mailing list archive

Re: bash: complete både på extension og directroies

 

On 09/23/2011 01:06 PM, Atte André Jensen wrote:
Hej

Jeg har lige fundet ud af hvordan jeg fx kan få bash til ved (mit eget
program) abctool kun at complete på relevant extension, ved at sætte
følgende i .bashrc

complete -f -X '!*.@(abc)' abctool

Eneste skår i glæden er at jeg også gerne vil complete på foldere,
således jeg kan tab-complete mig igennem en directory-struktur. Er det
er kløgtigt hoved der kan hjælpe her?


function _abccomplete_()
{
    local cmd="${1##*/}"
    local word=${COMP_WORDS[COMP_CWORD]}
    local line=${COMP_LINE}
    local xpat='!*.abc'
    COMPREPLY=($(compgen -f -X "$xpat" -- "${word}"))
}

complete -d -X '.[^./]*' -F _abccomplete_ abctool



Ikke så elegant, hvis man har mange custom completions, men det virker...


--
Atte


References