refactor(percol): fix style, bind keys for vi-mode and remove dependencies

This commit is contained in:
Marc Cornellà 2021-11-08 14:01:34 +01:00
commit 90903779b9
No known key found for this signature in database
GPG key ID: 0314585E776A9C1B
2 changed files with 35 additions and 29 deletions

View file

@ -1,22 +1,25 @@
if which percol &> /dev/null; then
function percol_select_history() {
local tac
which gtac &> /dev/null && tac="gtac" || { which tac &> /dev/null && tac="tac" || { tac="tail -r" } }
BUFFER=$(fc -l -n 1 | eval $tac | percol --query "$LBUFFER")
CURSOR=$#BUFFER
zle -R -c
}
(( ${+commands[percol]} )) || return
zle -N percol_select_history
bindkey '^R' percol_select_history
function percol_select_history() {
# print history in reverse order (from -1 (latest) to 1 (oldest))
BUFFER=$(fc -l -n -1 1 | percol --query "$LBUFFER")
CURSOR=$#BUFFER
zle -R -c
}
zle -N percol_select_history
bindkey -M emacs '^R' percol_select_history
bindkey -M viins '^R' percol_select_history
bindkey -M vicmd '^R' percol_select_history
if which marks &> /dev/null; then
function percol_select_marks() {
BUFFER=$(marks | percol --query "$LBUFFER" | awk '{print $3}')
CURSOR=$#BUFFER # move cursor
zle -R -c # refresh
}
zle -N percol_select_marks
bindkey '^B' percol_select_marks
fi
if (( ${+functions[marks]} )); then
function percol_select_marks() {
# parse directory from marks output (markname -> path) and quote if necessary
BUFFER=${(q)"$(marks | percol --query "$LBUFFER")"##*-> }
CURSOR=$#BUFFER
zle -R -c
}
zle -N percol_select_marks
bindkey -M emacs '^B' percol_select_marks
bindkey -M viins '^B' percol_select_marks
bindkey -M vicmd '^B' percol_select_marks
fi