blob: ed938950b8874e61387b6d1f89582a806a9edb68 (
plain) (
blame)
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
# Simple completions for Bash builtins and POSIX utilities; more specific or
# complex stuff goes in ~/.bash_completion.d, for possible dynamic loading
# If COMP_WORDBREAKS has a value, strip all colons from it; this allows
# completing filenames correctly, since a colon is not a shell metacharacter:
# <http://tiswww.case.edu/php/chet/bash/FAQ> (E13)
[[ -n $COMP_WORDBREAKS ]] && COMP_WORDBREAKS=${COMP_WORDBREAKS//:}
# If ~/.hosts exists, use that as the host completion file rather than
# /etc/hosts, so I can populate the list myself
[[ -f $HOME/.hosts ]] && HOSTFILE=$HOME/.hosts
# Aliases
complete -A alias unalias
# Bash builtins
complete -A builtin builtin
complete -A enabled disable
complete -A disabled enable
# Bash options
complete -A setopt set
# Commands
complete -A command alias command complete compopt coproc exec if hash time type until while
# Directories
complete -A directory cd pushd mkdir rmdir
# Functions and variables
complete -A function function
complete -A function -A variable declare export local readonly typeset unset
complete -A variable for getopts let read select
# Help topics
complete -A helptopic help
# Jobspecs
complete -P '%' -A job disown fg jobs
complete -P '%' -A stopped bg
# Readline bindings
complete -A binding bind
# Shell options
complete -A shopt shopt
# Signal names
complete -A signal trap
# The `mapfile` builtin in Bash >= 4.0
((BASH_VERSINFO[0] >= 4)) && complete -A arrayvar mapfile readarray
# If we have dynamic completion loading (Bash>=4.0), use it
if ((BASH_VERSINFO[0] >= 4)) ; then
# Handler tries to load appropriate completion for commands
_completion_loader() {
[[ -n $1 ]] || return
local compspec
compspec=$HOME/.bash_completion.d/$1.bash
[[ -f $compspec ]] || return
source "$compspec" >/dev/null 2>&1 && return 124
}
complete -D -F _completion_loader -o bashdefault -o default
# If not, load all of the completions up now
else
for sh in "$HOME"/.bash_completion.d/*.bash ; do
[[ -e $sh ]] && source "$sh"
done
unset -v sh
fi
|