summaryrefslogtreecommitdiff
path: root/plugins/zsh-navigation-tools/n-history
diff options
context:
space:
mode:
authorMarc Cornellà <marc.cornella@live.com>2015-11-30 09:50:37 +0100
committerMarc Cornellà <marc.cornella@live.com>2015-11-30 09:50:37 +0100
commitafd28bf1fc22f53c4a1af3f5836ca428affb34b3 (patch)
tree9f56960cbb4e2074d405e4be587a1658a6cc2159 /plugins/zsh-navigation-tools/n-history
parentfea74b4b34412cca1b0bc3ec232e5ec8c602ee8a (diff)
parent4c292ea2b023a331dcf1af5644487f2272d24a4d (diff)
downloadzsh-afd28bf1fc22f53c4a1af3f5836ca428affb34b3.tar.gz
zsh-afd28bf1fc22f53c4a1af3f5836ca428affb34b3.tar.bz2
zsh-afd28bf1fc22f53c4a1af3f5836ca428affb34b3.zip
Merge pull request #4368 from psprint/master
Update Zsh Navigation Tools plugin
Diffstat (limited to 'plugins/zsh-navigation-tools/n-history')
-rw-r--r--plugins/zsh-navigation-tools/n-history53
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: