#!/usr/bin/env bash function setup_completion() { [[ $- == *i* ]] || return bind 'set colored-stats on' bind 'set visible-stats on' bind 'set mark-symlinked-directories on' bind 'set colored-completion-prefix on' bind 'set show-all-if-ambiguous on' bind 'set completion-ignore-case on' bind 'set page-completions off' bind 'set menu-complete-display-prefix on' bind 'set completion-query-items -1' bind 'TAB:menu-complete' bind '"\e[Z":menu-complete-backward' export COMP_WORDBREAKS="${COMP_WORDBREAKS//\/}" bind 'set mark-directories on' bind 'set mark-symlinked-directories on' } function setup_fzf() { local fzf_dir for fzf_dir in /usr/share/fzf /usr/share/doc/fzf/examples; do if [ -d "$fzf_dir" ]; then [ -f "$fzf_dir/key-bindings.bash" ] && . "$fzf_dir/key-bindings.bash" [ -f "$fzf_dir/completion.bash" ] && . "$fzf_dir/completion.bash" return fi done } . /etc/bash_completion setup_completion setup_fzf