summaryrefslogtreecommitdiff
path: root/plugins/percol/percol.plugin.zsh
blob: c6adf4e1eeff3a3c96fa68b64d6c68306aa140c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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
    }

    zle -N percol_select_history
    bindkey '^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
fi