summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/zsh-navigation-tools/.config/znt/README.txt1
-rw-r--r--plugins/zsh-navigation-tools/README.md37
-rwxr-xr-xplugins/zsh-navigation-tools/doc/generate_single_file35
-rw-r--r--plugins/zsh-navigation-tools/doc/img/n-history2.pngbin0 -> 108316 bytes
-rwxr-xr-xplugins/zsh-navigation-tools/doc/install.sh70
-rw-r--r--plugins/zsh-navigation-tools/doc/n-preview224
-rwxr-xr-xplugins/zsh-navigation-tools/doc/znt-tmux.zsh (renamed from plugins/zsh-navigation-tools/znt-tmux.zsh)2
-rw-r--r--plugins/zsh-navigation-tools/zsh-navigation-tools.plugin.zsh2
8 files changed, 346 insertions, 25 deletions
diff --git a/plugins/zsh-navigation-tools/.config/znt/README.txt b/plugins/zsh-navigation-tools/.config/znt/README.txt
deleted file mode 100644
index c3d6c821a..000000000
--- a/plugins/zsh-navigation-tools/.config/znt/README.txt
+++ /dev/null
@@ -1 +0,0 @@
-These are skeletons, configuration is read from ~/.config/znt/*
diff --git a/plugins/zsh-navigation-tools/README.md b/plugins/zsh-navigation-tools/README.md
index 7d2ce99f4..9fd2d5414 100644
--- a/plugins/zsh-navigation-tools/README.md
+++ b/plugins/zsh-navigation-tools/README.md
@@ -1,15 +1,14 @@
[![License (GPL version 3)](https://img.shields.io/badge/license-GNU%20GPL%20version%203-blue.svg?style=flat-square)](./LICENSE)
[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](./LICENSE)
![ZSH 5.0.0](https://img.shields.io/badge/zsh-v5.0.0-orange.svg?style=flat-square)
+[![Gitter][gitter-image]][gitter-link]
![znt logo](http://imageshack.com/a/img905/2629/WK9qjN.png)
-[![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=D6XDCHDSBDSDG)
-
# Zsh Navigation Tools
-Also check out [![ZCA](http://imageshack.com/a/img911/8084/qSpO8a.png) Zsh Command Architect](https://github.com/psprint/zsh-cmd-architect)
-and [Zconvey](https://github.com/psprint/zconvey)
+Also check out [![ZCA](http://imageshack.com/a/img911/8084/qSpO8a.png) Zsh Command Architect](https://github.com/zdharma-continuum/zsh-cmd-architect)
+and [Zconvey](https://github.com/zdharma-continuum/zconvey)
@@ -107,10 +106,10 @@ history management and various integrations with `Zsh`.
* 30-04-2016
- New feature: color themes. Use `Ctrl-T` and `Ctrl-G` to browse predefined
- themes. They are listed in [~/.config/znt/n-list.conf](https://github.com/psprint/zsh-navigation-tools/blob/master/.config/znt/n-list.conf).
+ themes. They are listed in [~/.config/znt/n-list.conf](https://github.com/zdharma-continuum/zsh-navigation-tools/blob/master/.config/znt/n-list.conf).
Use the file to permanently set a color scheme. Also, I sent a patch to Zsh developers
and starting from Zsh > 5.2 (not yet released) supported will be 256 colors.
- The file [~/.config/znt/n-list.conf](https://github.com/psprint/zsh-navigation-tools/blob/master/.config/znt/n-list.conf)
+ The file [~/.config/znt/n-list.conf](https://github.com/zdharma-continuum/zsh-navigation-tools/blob/master/.config/znt/n-list.conf)
already has set of 256-color themes prepared :)
![themes](http://imageshack.com/a/img924/4310/EbRh30.gif)
@@ -130,7 +129,7 @@ history management and various integrations with `Zsh`.
## Installation
```
-sh -c "$(curl -fsSL https://raw.githubusercontent.com/psprint/zsh-navigation-tools/master/doc/install.sh)"
+sh -c "$(curl -fsSL https://raw.githubusercontent.com/zdharma-continuum/zsh-navigation-tools/master/doc/install.sh)"
```
To update run the command again.
@@ -140,16 +139,16 @@ will be updated with only `8` lines of code, which will be added at the bottom.
After installing and reloading shell give `ZNT` a quick try with `Ctrl-R` – this keyboard shortcut will open `n-history`.
-## Installation With [Zplugin](https://github.com/psprint/zplugin)
-Add `zplugin load psprint/zsh-navigation-tools` to `.zshrc`. The config files will be in `~/.config/znt`.
+## Installation With [Zinit](https://github.com/zdharma-continuum/zinit)
+Add `zinit load zdharma-continuum/zsh-navigation-tools` to `.zshrc`. The config files will be in `~/.config/znt`.
-## Installation With Zgen
+## Installation With Zgenom/Zgen
-Add `zgen load psprint/zsh-navigation-tools` to `.zshrc` and issue a `zgen reset` (this assumes that there is a proper `zgen save` construct in `.zshrc`).
+Add `zgen load zdharma-continuum/zsh-navigation-tools` to `.zshrc` and issue a `zgen reset` (this assumes that there is a proper `zgen save` construct in `.zshrc`).
The config files will be available in `~/.config/znt`.
## Installation With Antigen
-Add `antigen bundle psprint/zsh-navigation-tools` to `.zshrc`. There also
+Add `antigen bundle zdharma-continuum/zsh-navigation-tools` to `.zshrc`. There also
should be `antigen apply`. The config files will be in `~/.config/znt`.
## Single File Manual Installation
@@ -194,7 +193,7 @@ alias naliases=n-aliases ncd=n-cd nenv=n-env nfunctions=n-functions nhistory=n-h
alias nkill=n-kill noptions=n-options npanelize=n-panelize nhelp=n-help
```
-Don't forget to copy [configuration files](https://github.com/psprint/zsh-navigation-tools/tree/master/.config/znt). They should go to `~/.config/znt`. Moreover, `n-cd` works together with option `AUTO_PUSHD` and you should have:
+Don't forget to copy [configuration files](https://github.com/zdharma-continuum/zsh-navigation-tools/tree/master/.config/znt). They should go to `~/.config/znt`. Moreover, `n-cd` works together with option `AUTO_PUSHD` and you should have:
```zsh
setopt AUTO_PUSHD
@@ -397,15 +396,7 @@ The same with doing any non-typical Zsh Navigation Tools installation.
## More
-- be aware of [this](https://github.com/psprint/zsh-navigation-tools/blob/f49f910d239ae5bc6e1a5bb34930307b4f4e3ffe/zsh-navigation-tools.plugin.zsh#L35-L49)
-
-## IRC Channel
-
-Channel `#zplugin@freenode` is a support place for all author's projects. Connect to:
-[chat.freenode.net:6697](ircs://chat.freenode.net:6697/%23zplugin) (SSL) or [chat.freenode.net:6667](irc://chat.freenode.net:6667/%23zplugin)
- and join #zplugin.
-
-Following is a quick access via Webchat [![IRC](https://kiwiirc.com/buttons/chat.freenode.net/zplugin.png)](https://kiwiirc.com/client/chat.freenode.net:+6697/#zplugin)
+- be aware of [this](https://github.com/zdharma-continuum/zsh-navigation-tools/blob/f49f910d239ae5bc6e1a5bb34930307b4f4e3ffe/zsh-navigation-tools.plugin.zsh#L35-L49)
# Fixing tmux, screen and linux vt
@@ -429,3 +420,5 @@ It will not display underline properly, but will instead highlight by a color,
which is quite nice. The same will not work for FreeBSD's vt, `ZNT` will detect
if that vt is used and will revert to highlighting elements via `reverse` mode.
+[gitter-image]: https://badges.gitter.im/zdharma-continuum/community.svg
+[gitter-link]: https://gitter.im/zdharma-continuum/community
diff --git a/plugins/zsh-navigation-tools/doc/generate_single_file b/plugins/zsh-navigation-tools/doc/generate_single_file
new file mode 100755
index 000000000..d3d393834
--- /dev/null
+++ b/plugins/zsh-navigation-tools/doc/generate_single_file
@@ -0,0 +1,35 @@
+#!/bin/zsh
+
+local PLUGIN_FILE="doc/zshnavigationtools.plugin.zsh"
+
+[ -d doc ] || cd ..
+
+rm -vf "$PLUGIN_FILE"
+echo "# The preamble comments apply when using ZNT as autoload functions" >>"$PLUGIN_FILE"
+echo "# https://github.com/psprint/zsh-navigation-tools" >>"$PLUGIN_FILE"
+echo "# License is GPLv3 and MIT" >>"$PLUGIN_FILE"
+echo -n "# " >>"$PLUGIN_FILE"
+git show-ref master | head -1 >>"$PLUGIN_FILE"
+echo >>"$PLUGIN_FILE"
+
+for i in n-*(on); do
+ echo "$i() {" >>"$PLUGIN_FILE"
+ cat "$i" >>"$PLUGIN_FILE"
+ echo "}" >>"$PLUGIN_FILE"
+ echo "alias n${i#n-}=$i" >>"$PLUGIN_FILE"
+ echo >>"$PLUGIN_FILE"
+done
+
+# Append znt-* files
+for i in znt-*(on); do
+ echo "$i() {" >>"$PLUGIN_FILE"
+ cat "$i" >>"$PLUGIN_FILE"
+ echo "}" >>"$PLUGIN_FILE"
+ echo >>"$PLUGIN_FILE"
+done
+
+# Append ^R bind
+echo "zle -N znt-history-widget" >>"$PLUGIN_FILE"
+echo "bindkey '^R' znt-history-widget" >>"$PLUGIN_FILE"
+echo "setopt AUTO_PUSHD HIST_IGNORE_DUPS PUSHD_IGNORE_DUPS" >>"$PLUGIN_FILE"
+
diff --git a/plugins/zsh-navigation-tools/doc/img/n-history2.png b/plugins/zsh-navigation-tools/doc/img/n-history2.png
new file mode 100644
index 000000000..fa23de00d
--- /dev/null
+++ b/plugins/zsh-navigation-tools/doc/img/n-history2.png
Binary files differ
diff --git a/plugins/zsh-navigation-tools/doc/install.sh b/plugins/zsh-navigation-tools/doc/install.sh
new file mode 100755
index 000000000..2b71aa3b4
--- /dev/null
+++ b/plugins/zsh-navigation-tools/doc/install.sh
@@ -0,0 +1,70 @@
+#!/bin/sh
+
+if ! type git 2>/dev/null 1>&2; then
+ echo "Please install GIT first"
+ echo "Exiting"
+ exit 1
+fi
+
+#
+# Clone or pull
+#
+
+if ! test -d "$HOME/.config"; then
+ mkdir "$HOME/.config"
+fi
+
+if ! test -d "$HOME/.config/znt"; then
+ mkdir "$HOME/.config/znt"
+fi
+
+echo ">>> Downloading zsh-navigation-tools to ~/.config/znt"
+if test -d ~/.config/znt/zsh-navigation-tools; then
+ cd ~/.config/znt/zsh-navigation-tools
+ git pull origin master
+else
+ cd ~/.config/znt
+ git clone https://github.com/psprint/zsh-navigation-tools.git zsh-navigation-tools
+fi
+echo ">>> Done"
+
+#
+# Copy configs
+#
+
+echo ">>> Copying config files"
+
+cd ~/.config/znt
+
+set n-aliases.conf n-env.conf n-history.conf n-list.conf n-panelize.conf n-cd.conf n-functions.conf n-kill.conf n-options.conf
+
+for i; do
+ if ! test -f "$i"; then
+ cp -v zsh-navigation-tools/.config/znt/$i .
+ fi
+done
+
+echo ">>> Done"
+
+#
+# Modify .zshrc
+#
+
+echo ">>> Updating .zshrc"
+if ! grep zsh-navigation-tools ~/.zshrc >/dev/null 2>&1; then
+ echo >> ~/.zshrc
+ echo "### ZNT's installer added snippet ###" >> ~/.zshrc
+ echo "fpath=( \"\$fpath[@]\" \"\$HOME/.config/znt/zsh-navigation-tools\" )" >> ~/.zshrc
+ echo "autoload n-aliases n-cd n-env n-functions n-history n-kill n-list n-list-draw n-list-input n-options n-panelize n-help" >> ~/.zshrc
+ echo "autoload znt-usetty-wrapper znt-history-widget znt-cd-widget znt-kill-widget" >> ~/.zshrc
+ echo "alias naliases=n-aliases ncd=n-cd nenv=n-env nfunctions=n-functions nhistory=n-history" >> ~/.zshrc
+ echo "alias nkill=n-kill noptions=n-options npanelize=n-panelize nhelp=n-help" >> ~/.zshrc
+ echo "zle -N znt-history-widget" >> ~/.zshrc
+ echo "bindkey '^R' znt-history-widget" >> ~/.zshrc
+ echo "setopt AUTO_PUSHD HIST_IGNORE_DUPS PUSHD_IGNORE_DUPS" >> ~/.zshrc
+ echo "zstyle ':completion::complete:n-kill::bits' matcher 'r:|=** l:|=*'" >> ~/.zshrc
+ echo "### END ###" >> ~/.zshrc
+ echo ">>> Done"
+else
+ echo ">>> .zshrc already updated, not making changes"
+fi
diff --git a/plugins/zsh-navigation-tools/doc/n-preview b/plugins/zsh-navigation-tools/doc/n-preview
new file mode 100644
index 000000000..2d8eea3fb
--- /dev/null
+++ b/plugins/zsh-navigation-tools/doc/n-preview
@@ -0,0 +1,224 @@
+# Copy this file into /usr/share/zsh/site-functions/
+# and add 'autoload n-preview` to .zshrc
+#
+# This is partially a test if n-list-draw and n-list-input can be
+# used multiple times to create multiple lists. It might become
+# more usable if someone adds more features like previewing of
+# archive contents.
+
+emulate -L zsh
+
+zmodload zsh/curses
+
+setopt typesetsilent extendedglob
+trap "return" TERM INT QUIT
+trap "_vpreview_exit" EXIT
+
+local IFS="
+"
+
+[ -f ~/.config/znt/n-list.conf ] && . ~/.config/znt/n-list.conf
+
+[[ "$colorpair" = "" ]] && colorpair="white/black"
+local background="${colorpair#*/}"
+
+# Drawing and input
+autoload n-list-draw n-list-input
+
+# Cleanup before any exit
+_vpreview_exit() {
+ zcurses 2>/dev/null delwin files
+ zcurses 2>/dev/null delwin body
+ zcurses 2>/dev/null delwin status
+ zcurses 2>/dev/null refresh
+ zcurses end
+}
+
+# Outputs a message in the bottom of the screen
+_vpreview_status_msg() {
+ zcurses move status 1 2
+ zcurses clear status eol
+ zcurses string status "$1"
+}
+
+# Prefer tput, then module terminfo
+_nlist_cursor_visibility() {
+ if type tput 2>/dev/null 1>&2; then
+ [ "$1" = "1" ] && tput cvvis
+ [ "$1" = "0" ] && tput civis
+ elif [ "$has_termcap" = "1" ]; then
+ [ "$1" = "1" ] && [ -n $terminfo[cvvis] ] && echo -n $terminfo[cvvis]
+ [ "$1" = "0" ] && [ -n $terminfo[civis] ] && echo -n $terminfo[civis]
+ fi
+}
+
+#
+# Main code
+#
+
+integer term_height="$LINES"
+integer term_width="$COLUMNS"
+if [[ "$term_height" -lt 1 || "$term_width" -lt 1 ]]; then
+ local stty_out=$( stty size )
+ term_height="${stty_out% *}"
+ term_width="${stty_out#* }"
+fi
+
+integer status_height=3
+integer status_width=term_width
+integer status_page_height=1
+integer status_page_width=term_width-2
+
+integer files_height=term_height-status_height
+integer files_width=term_width/5
+integer files_page_height=files_height-2
+integer files_page_width=files_width-2
+
+integer body_height=term_height-status_height
+integer body_width=term_width-files_width
+integer body_page_height=body_height-2
+integer body_page_width=body_width
+
+integer _from_what_idx_list_is_shown_1=1
+integer current_1=1
+
+integer _from_what_idx_list_is_shown_2=1
+integer current_2=1
+integer hscroll_2=0
+
+integer active_window=0
+
+local ansi_mode="ansi"
+[ -f ~/.config/znt/n-preview.conf ] && . ~/.config/znt/n-preview.conf
+typeset -a hcmd
+#if type pygmentize 2>/dev/null 1>&2; then
+# hcmd=( pygmentize -g )
+if type highlight 2>/dev/null 1>&2; then
+ hcmd=( highlight -q --force -O ansi )
+elif type source-highlight 2>/dev/null 1>&2; then
+ # Warning: source-highlight can have problems
+ hcmd=( source-highlight --failsafe -fesc -o STDOUT -i )
+else
+ ansi_mode="noansi"
+fi
+
+zcurses init
+zcurses addwin status "$status_height" "$status_width" $(( term_height - status_height )) 0
+zcurses addwin files "$files_height" "$files_width" 0 0
+zcurses addwin body "$body_height" "$body_width" 0 "$files_width"
+zcurses bg status white/black
+zcurses bg files white/black
+zcurses bg body white/black
+
+#
+# Listening for input
+#
+
+local key keypad
+
+# Clear input buffer
+zcurses timeout status 0
+zcurses input status key keypad
+zcurses timeout status -1
+key=""
+keypad=""
+
+typeset -a filenames
+integer last_element_1
+
+typeset -a body
+integer last_element_2
+
+filenames=( *(N) )
+filenames=( "${(@M)filenames:#(#i)*$1*}" )
+
+local NLIST_GREP_STRING="$1"
+
+integer last_element_1="$#filenames"
+integer last_element_2=0
+
+local selection action final_key
+
+while (( 1 )); do
+ # Output the lists
+ integer end_idx=$(( _from_what_idx_list_is_shown_1 + files_page_height - 1 ))
+ [ "$end_idx" -gt "$last_element_1" ] && end_idx=last_element_1
+
+ n-list-draw "$(( (current_1 -1) % files_page_height + 1 ))" \
+ "$files_page_height" "$files_page_width" 1 2 0 files \
+ "${(@)filenames[_from_what_idx_list_is_shown_1, end_idx]}"
+
+ if [ "$#body" -ge 1 ]; then
+ end_idx=$(( _from_what_idx_list_is_shown_2 + body_page_height - 1 ))
+ [ "$end_idx" -gt "$last_element_2" ] && end_idx=last_element_2
+
+ n-list-draw "$(( (current_2 -1) % body_page_height + 1 ))" \
+ "$body_page_height" "$body_page_width" 1 0 "$hscroll_2" body \
+ "${(@)body[_from_what_idx_list_is_shown_2, end_idx]}"
+ fi
+
+ [[ "$active_window" -eq 0 ]] && zcurses border files
+ zcurses border status
+ zcurses refresh files body status
+
+ # Wait for input
+ zcurses input status key keypad
+
+ # Get the special (i.e. "keypad") key or regular key
+ if [ -n "$key" ]; then
+ final_key="$key"
+ elif [ -n "$keypad" ]; then
+ final_key="$keypad"
+ else
+ _vpreview_status_msg "Inproper input detected"
+ zcurses refresh status
+ fi
+
+ if [ "$active_window" -eq 0 ]; then
+ zcurses clear files
+ n-list-input "$current_1" "$_from_what_idx_list_is_shown_1" "$files_page_height" \
+ "$files_page_width" "$last_element_1" 0 "$final_key"
+
+ selection="$reply[1]"
+ action="$reply[2]"
+ current_1="$reply[3]"
+ _from_what_idx_list_is_shown_1="$reply[4]"
+
+ if [ "$action" = "SELECT" ]; then
+ # Load new file and refresh the displaying window
+ local filename="$filenames[$selection]"
+ if [ "$ansi_mode" = "ansi" ]; then
+ body=( "${(@f)"$( "$hcmd[@]" "$filename" )"}" )
+ else
+ body=( "${(@f)"$(<$filename)"}" )
+ fi
+ last_element_2="$#body"
+ current_2=1
+ _from_what_idx_list_is_shown_2=1
+ zcurses clear body
+ fi
+ elif [ "$active_window" -eq 1 ]; then
+ zcurses clear body
+ n-list-input "$current_2" "$_from_what_idx_list_is_shown_2" "$body_page_height" \
+ "$body_page_width" "$last_element_2" "$hscroll_2" "$final_key"
+
+ selection="$reply[1]"
+ action="$reply[2]"
+ current_2="$reply[3]"
+ _from_what_idx_list_is_shown_2="$reply[4]"
+ hscroll_2="$reply[5]"
+
+ fi
+
+ if [ "$action" = "LEAVE" ]; then
+ active_window=1-active_window
+ elif [ "$action" = "QUIT" ]; then
+ break
+ elif [ "$action" = "REDRAW" ]; then
+ zcurses clear files redraw
+ zcurses clear body redraw
+ zcurses clear status redraw
+ fi
+done
+
+# vim: set filetype=zsh:
diff --git a/plugins/zsh-navigation-tools/znt-tmux.zsh b/plugins/zsh-navigation-tools/doc/znt-tmux.zsh
index 6a96e97a1..309c11a0b 100755
--- a/plugins/zsh-navigation-tools/znt-tmux.zsh
+++ b/plugins/zsh-navigation-tools/doc/znt-tmux.zsh
@@ -12,7 +12,7 @@
# To use, put this line to your ~/.tmux.conf. The tool is invoked with:
# Ctrl+b h
#
-# bind h run-shell -b "$ZNT_REPO_DIR/znt-tmux.zsh"
+# bind h run-shell -b "$ZNT_REPO_DIR/doc/znt-tmux.zsh"
#
# get and save the current active tmux pane id
diff --git a/plugins/zsh-navigation-tools/zsh-navigation-tools.plugin.zsh b/plugins/zsh-navigation-tools/zsh-navigation-tools.plugin.zsh
index f015620f5..85ce87ca4 100644
--- a/plugins/zsh-navigation-tools/zsh-navigation-tools.plugin.zsh
+++ b/plugins/zsh-navigation-tools/zsh-navigation-tools.plugin.zsh
@@ -8,7 +8,7 @@
#
# According to the standard:
-# http://zdharma.org/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html
+# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html
0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}"
0="${${(M)0:#/*}:-$PWD/$0}"
export ZNT_REPO_DIR="${0:h}"