diff options
Diffstat (limited to 'plugins/percol')
| -rw-r--r-- | plugins/percol/README.md | 20 | ||||
| -rw-r--r-- | plugins/percol/percol.plugin.zsh | 22 | 
2 files changed, 42 insertions, 0 deletions
diff --git a/plugins/percol/README.md b/plugins/percol/README.md new file mode 100644 index 000000000..b262e414e --- /dev/null +++ b/plugins/percol/README.md @@ -0,0 +1,20 @@ +## percol + +Provides some useful function to make [percol](https://github.com/mooz/percol) work with zsh history and [jump plugin](https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/jump/jump.plugin.zsh) + +### Requirements + +```shell +pip install percol +``` + +And [jump](https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/jump/jump.plugin.zsh) for `oh-my-zsh` is a optional requirement. + +### Usage + +For default + +- `^-r` bind to `percol_select_history`.You can use it to grep your history with percol. + +- `^-b` bind to `percol_select_marks`.You can use it to grep your bookmarks with percol. + diff --git a/plugins/percol/percol.plugin.zsh b/plugins/percol/percol.plugin.zsh new file mode 100644 index 000000000..c6adf4e1e --- /dev/null +++ b/plugins/percol/percol.plugin.zsh @@ -0,0 +1,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  | 
