summaryrefslogtreecommitdiffstats
path: root/zsh/oh-my-zsh/plugins/percol/percol.plugin.zsh
blob: b78383eee2191ead1fb8b5675cb81b1a7c4faf63 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
(( ${+commands[percol]} )) || return

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 (( ${+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