view dot_config/bash/fzf_aliases @ 876:8589883596fd

fix: remove pathdirs option to avoid slow path completions see: https://stackoverflow.com/questions/76746392/why-is-my-zsh-tab-completion-slow-on-commands-but-not-directories > Perform a path search even on command names with slashes in them. > Thus if ?/usr/local/bin? is in the user?s path, and he or she types ?X11/xinit?, the command ?/usr/local/bin/X11/xinit? will be executed (assuming it exists). > Commands explicitly beginning with ?/?, ?./? or ?../? are not subject to the path search. This also applies to the ?.? and source builtins.
author Zeger Van de Vannet <zeger@vandevan.net>
date Thu, 25 Apr 2024 10:05:40 +0200
parents d726921aaabe
children
line wrap: on
line source

# ** vim:ft=sh

# export FZF_DEFAULT_COMMAND='fd -I --type file --color=always'
export FZF_DEFAULT_OPTS='--ansi'

__git_log () {
    git log --format="%C(auto)%h %<(15)%C(auto, green)%cr %>(20)%C(auto, magenta)%an %C(auto)%s %D"
}

_fzf_complete_git() {
    ARGS="$@"

    if [[ $ARGS=='git show'* || \
          $ARGS=='git cherry-pick'* || \
          $ARGS=='git checkout'* || \
          $ARGS=='git commit -a --fixup'* || \
          $ARGS=='git reset'* ]]; then
        _fzf_complete "--reverse --multi" "$@" < <(__git_log)
    fi
}

_fzf_complete_git_post() {
    sed -e 's/^[^a-z0-9]*//' | awk '{print $1}'
}

complete -F _fzf_complete_git -o default -o bashdefault git

__hg_log () {
   hg ls
}

_fzf_complete_hg() {
   ARGS="$@"

   if [[ $ARGS=='hg rebase'* ]]; then
      _fzf_complete "--reverse --multi" "$@" < <(hg log --graph --rev=wip --template=oneline)
   elif [[ $ARGS=='hg ls'* ]]; then
      _fzf_complete "--reverse --multi" "$@" < <(hg ls -l 100)
   fi
}

_fzf_complete_hg_post() {
    sed -e 's/^[^0-9]*//' | awk '{print $1}'
}

complete -F _fzf_complete_hg -o default -o bashdefault hg