summaryrefslogtreecommitdiffstats
path: root/zsh/oh-my-zsh/plugins/percol
diff options
context:
space:
mode:
authorLibravatarLibravatar Biswakalyan Bhuyan <biswa@surgot.in> 2022-10-03 21:42:20 +0530
committerLibravatarLibravatar Biswakalyan Bhuyan <biswa@surgot.in> 2022-10-03 21:42:20 +0530
commitaf120ab348f2e1a5a39dec035ed9dcf84189a64e (patch)
tree2a3aadd7ce1b7b771dfe3fe7c983569726c8d7ed /zsh/oh-my-zsh/plugins/percol
downloaddotfiles-af120ab348f2e1a5a39dec035ed9dcf84189a64e.tar.gz
dotfiles-af120ab348f2e1a5a39dec035ed9dcf84189a64e.tar.bz2
dotfiles-af120ab348f2e1a5a39dec035ed9dcf84189a64e.zip
dotfiles
Diffstat (limited to 'zsh/oh-my-zsh/plugins/percol')
-rw-r--r--zsh/oh-my-zsh/plugins/percol/README.md23
-rw-r--r--zsh/oh-my-zsh/plugins/percol/percol.plugin.zsh25
2 files changed, 48 insertions, 0 deletions
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
+
+- <kbd>CTRL-R</kbd> (bound to `percol_select_history`): you can use it to grep your history with percol.
+
+- <kbd>CTRL-B</kbd> (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