Mercurial > dotfiles
diff dot_config/bash/fzf_aliases @ 257:d726921aaabe
Clean start of dotfiles repo
author | zegervdv <zegervdv@me.com> |
---|---|
date | Thu, 21 May 2020 11:28:36 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dot_config/bash/fzf_aliases Thu May 21 11:28:36 2020 +0200 @@ -0,0 +1,46 @@ +# ** 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