From af120ab348f2e1a5a39dec035ed9dcf84189a64e Mon Sep 17 00:00:00 2001 From: Biswakalyan Bhuyan Date: Mon, 3 Oct 2022 21:42:20 +0530 Subject: dotfiles --- zsh/oh-my-zsh/plugins/percol/README.md | 23 +++++++++++++++++++++++ zsh/oh-my-zsh/plugins/percol/percol.plugin.zsh | 25 +++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 zsh/oh-my-zsh/plugins/percol/README.md create mode 100644 zsh/oh-my-zsh/plugins/percol/percol.plugin.zsh (limited to 'zsh/oh-my-zsh/plugins/percol') diff --git a/zsh/oh-my-zsh/plugins/percol/README.md b/zsh/oh-my-zsh/plugins/percol/README.md new file mode 100644 index 0000000..78c881f --- /dev/null +++ b/zsh/oh-my-zsh/plugins/percol/README.md @@ -0,0 +1,23 @@ +# percol + +Provides some useful function to make [percol](https://github.com/mooz/percol) work with zsh history and +the [jump plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/jump), optionally. + +To use it, add `percol` to the plugins array in your zshrc: + +```zsh +plugins=(... percol) +``` + +## Requirements + +- `percol`: install with `pip install percol`. + +- (_Optional_) [`jump`](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/jump) plugin: needs to be + enabled before the `percol` plugin. + +## Usage + +- CTRL-R (bound to `percol_select_history`): you can use it to grep your history with percol. + +- CTRL-B (bound to `percol_select_marks`): you can use it to grep your jump bookmarks with percol. diff --git a/zsh/oh-my-zsh/plugins/percol/percol.plugin.zsh b/zsh/oh-my-zsh/plugins/percol/percol.plugin.zsh new file mode 100644 index 0000000..b78383e --- /dev/null +++ b/zsh/oh-my-zsh/plugins/percol/percol.plugin.zsh @@ -0,0 +1,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 -- cgit v1.2.3-59-g8ed1b