diff options
author | Sebastian Gniazdowski <sgniazdowski@gmail.com> | 2015-09-20 14:39:46 +0200 |
---|---|---|
committer | Sebastian Gniazdowski <sgniazdowski@gmail.com> | 2015-11-01 16:10:55 +0100 |
commit | 4c292ea2b023a331dcf1af5644487f2272d24a4d (patch) | |
tree | 7141e282b7aaf9e5fba7ea3102c25ef0e5478d40 /plugins/zsh-navigation-tools/n-history | |
parent | 9c08641d7c2aae0c82fa5ad91f94c67b70115ba5 (diff) | |
download | zsh-4c292ea2b023a331dcf1af5644487f2272d24a4d.tar.gz zsh-4c292ea2b023a331dcf1af5644487f2272d24a4d.tar.bz2 zsh-4c292ea2b023a331dcf1af5644487f2272d24a4d.zip |
Initial commit of Zsh Navigation Tools
Diffstat (limited to 'plugins/zsh-navigation-tools/n-history')
-rw-r--r-- | plugins/zsh-navigation-tools/n-history | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/plugins/zsh-navigation-tools/n-history b/plugins/zsh-navigation-tools/n-history new file mode 100644 index 000000000..e66f2a50a --- /dev/null +++ b/plugins/zsh-navigation-tools/n-history @@ -0,0 +1,53 @@ +# Copy this file into /usr/share/zsh/site-functions/ +# and add 'autoload n-history` to .zshrc +# +# This function allows to browse Z shell's history and use the +# entries +# +# Uses n-list + +emulate -L zsh + +setopt extendedglob +zmodload zsh/curses + +local IFS=" +" + +unset NLIST_COLORING_PATTERN + +[ -f ~/.config/znt/n-list.conf ] && . ~/.config/znt/n-list.conf +[ -f ~/.config/znt/n-history.conf ] && . ~/.config/znt/n-history.conf + +local list +local selected + +NLIST_REMEMBER_STATE=0 + +list=( `builtin history -rn 1` ) +list=( "${(@M)list:#(#i)*$1*}" ) + +local NLIST_GREP_STRING="$1" + +if [ "$#list" -eq 0 ]; then + echo "No matching history entries" + return 1 +fi + +n-list "${list[@]}" + +if [ "$REPLY" -gt 0 ]; then + selected="$reply[REPLY]" + # ZLE? + if [ "${(t)CURSOR}" = "integer-local-special" ]; then + zle redisplay + zle kill-whole-line + zle -U "$selected" + else + print -zr "$selected" + fi +else + [ "${(t)CURSOR}" = "integer-local-special" ] && zle redisplay +fi + +# vim: set filetype=zsh: |