write simple git completion for bash

This commit is contained in:
Felix Van der Jeugt 2017-10-09 10:22:36 +02:00
parent c703a6f0df
commit 45f04eaa57
No known key found for this signature in database
GPG key ID: 58B209295023754D
2 changed files with 20 additions and 0 deletions

19
bashrc
View file

@ -28,10 +28,29 @@ unset GREEN
unset RESET
# Completion
_comp_git() {
local IFS=$'\n'
# $1 is the name of the command whose arguments are being completed
# $2 is the word being completed
# $3 is the word preceding the word being completed
# branch names
COMPREPLY=( $(git branch -a --format "%(refname:short)" | grep "^$2") )
# remotes
COMPREPLY+=( $(git remote | grep "^$2") )
# subcommands
if [ "$3" = "git" ]; then
COMPREPLY+=( $({ compgen -c "git-"; command ls /usr/libexec/git-core; } | sed -n 's/^git-//p' | grep "^$2") )
fi
}
complete -c man
complete -cf sudo
complete -cf exec
complete -cf run
complete -fF _comp_git git
# history
export HISTCONTROL=ignorespace:erasedups