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