[Bash-completion-devel] Get stuck

Igor Murzov e-mail at date.by
Sun May 22 23:45:39 UTC 2011

Hey! I get stuck trying to implement completion script for strings containing 
two parts for completion delimited by '%' sign.  For example, `cmd opt%arg`. 
The problem is that, if i hit tab key, when cursor is behind delimeter, bash 
eats first part of string leaving `cmd arg`. I just can't understand why, for 
example `cmd -opt=arg` works just fine, and `cmd opt%arg` is not. What is the 

I also wrote the simple script to demonstrate the issue:
    local cur="${COMP_WORDS[COMP_CWORD]}"
    if [[ "$cur" == ?*%* ]]; then
        COMPREPLY=( $( compgen -W 'abc bbb cde' -- "$cur" ) )
        return 0

    compopt -o nospace
    COMPREPLY=( $(compgen -W 'xxx yyy zzz' -- "$cur") )
} && complete -F _zz zz

'_init_completion -n %' does not solve the issue either.

-- Igor

More information about the Bash-completion-devel mailing list