summaryrefslogtreecommitdiff
blob: 67537d63101d0818590493c1f209db39903071c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# Author: Ciaran McCreesh <ciaranm@gentoo.org>
#
# completion for vim

_vim()
{
    local cur prev cmd args

    COMPREPLY=()
    cur=${COMP_WORDS[COMP_CWORD]}
    prev=${COMP_WORDS[COMP_CWORD-1]}
    cmd=${COMP_WORDS[0]}

    if [[ "${prev}" == "--servername" ]] ; then
        local servers
        servers=$(gvim --serverlist )
        COMPREPLY=( $( compgen -W "${servers}" -- $cur ) )

    elif [[ "${prev}" == -[uUi] ]] ; then
        COMPREPLY=( $( compgen -W "NONE" ) \
                $( compgen -f -X "!*vim*" -- "$cur" ) )

    elif [[ "${cur}" == -* ]] ; then
        args='-t -q -c -S --cmd -A -b -C -d -D -e -E -f --nofork \
            -F -g -h -H -i -L -l -m -M -N -n -nb -o -R -r -s \
            -T -u -U -V -v -w -W -x -X -y -Y -Z --echo-wid \
            --help --literal --noplugin --version'
        COMPREPLY=( $( compgen -W "${args}" -- $cur ) )
    else
        _filedir
    fi
}

complete -o filenames -F _vim vim ex vi view rvim rview vimdiff

# vim: set ft=sh sw=4 et sts=4 :