|
|
@@ -130,6 +130,21 @@ fi
|
|
|
if [ -x /usr/bin/fzf ]; then
|
|
|
FZF_DEFAULT_OPTS='--no-mouse'
|
|
|
source "/usr/share/doc/fzf/examples/key-bindings.zsh"
|
|
|
+
|
|
|
+ __fzf_git_commit_sha() {
|
|
|
+ setopt localoptions pipefail no_aliases 2> /dev/null
|
|
|
+ git log --graph --color=always -n 50 --format='%C(auto)%h%d %s %C(black)%C(bold)%cr' |
|
|
|
+ FZF_DEFAULT_OPTS="--ansi --no-sort --tiebreak=index --height ${FZF_TMUX_HEIGHT:-40%} --reverse ${FZF_DEFAULT_OPTS-}" $(__fzfcmd) -m "$@" |
|
|
|
+ sed -r -e 's/([0-9a-f]+) .+/\1/' -e 's/.+ ([0-9a-f]+)/\1/'
|
|
|
+ }
|
|
|
+ fzf-git-commit-sha-widget() {
|
|
|
+ LBUFFER="${LBUFFER}$(__fzf_git_commit_sha)"
|
|
|
+ local ret=$?
|
|
|
+ zle reset-prompt
|
|
|
+ return $ret
|
|
|
+ }
|
|
|
+ zle -N fzf-git-commit-sha-widget
|
|
|
+ bindkey '^G' fzf-git-commit-sha-widget
|
|
|
fi
|
|
|
|
|
|
stty stop undef
|