diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2017-11-06 23:48:15 +1300 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2017-11-06 23:48:15 +1300 |
commit | 361c3986369d4a705328ad17aa0038e9380b44d7 (patch) | |
tree | c11751edf14fff828c3b467bebb4c9bbf4e700ec | |
parent | Merge branch 'feature/vim-plug-com' into develop (diff) | |
parent | Add "do", "then" keywords to Bash completion (diff) | |
download | dotfiles-361c3986369d4a705328ad17aa0038e9380b44d7.tar.gz dotfiles-361c3986369d4a705328ad17aa0038e9380b44d7.zip |
Merge branch 'feature/bash-compl' into develop
* feature/bash-compl:
Add "do", "then" keywords to Bash completion
Break bash/bashrc.d/completion.bash inline lists
-rw-r--r-- | bash/bashrc.d/completion.bash | 87 |
1 files changed, 68 insertions, 19 deletions
diff --git a/bash/bashrc.d/completion.bash b/bash/bashrc.d/completion.bash index 51de24b8..eb01dda2 100644 --- a/bash/bashrc.d/completion.bash +++ b/bash/bashrc.d/completion.bash @@ -4,53 +4,102 @@ # 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 [[ -n $COMP_WORDBREAKS ]] ; then + COMP_WORDBREAKS=${COMP_WORDBREAKS//:} +fi # 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 +if [[ -f $HOME/.hosts ]] ; then + HOSTFILE=$HOME/.hosts +fi # Aliases -complete -A alias unalias +complete -A alias \ + unalias # Bash builtins -complete -A builtin builtin -complete -A enabled disable -complete -A disabled enable +complete -A builtin \ + builtin +complete -A enabled \ + disable +complete -A disabled \ + enable # Bash options -complete -A setopt set +complete -A setopt \ + set # Commands -complete -A command alias command complete compopt coproc exec if hash time \ - type until while +complete -A command \ + alias \ + command \ + complete \ + compopt \ + coproc \ + do \ + exec \ + if \ + hash \ + then \ + time \ + type \ + until \ + while # Directories -complete -A directory cd pushd mkdir rmdir +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 +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 +complete -P '%' -A job \ + disown \ + fg \ + jobs +complete -P '%' -A stopped \ + bg # Readline bindings -complete -A binding bind +complete -A binding \ + bind # Shell options -complete -A shopt shopt +complete -A shopt \ + shopt # Signal names -complete -A signal trap +complete -A signal \ + trap # The `mapfile` builtin in Bash >= 4.0 -((BASH_VERSINFO[0] >= 4)) && complete -A arrayvar mapfile readarray +if ((BASH_VERSINFO[0] >= 4)) ; then + complete -A arrayvar \ + mapfile \ + readarray +fi # If we have dynamic completion loading (Bash>=4.0), use it if ((BASH_VERSINFO[0] >= 4)) ; then |