diff options
author | Tuowen Zhao <ztuowen@gmail.com> | 2022-01-01 02:26:11 -0600 |
---|---|---|
committer | Tuowen Zhao <ztuowen@gmail.com> | 2022-01-01 02:26:11 -0600 |
commit | 49edbf438ed690c76e6b2af80368c59404cf0167 (patch) | |
tree | 129b3adb2f5f39a1329a426a3b7d51ed2c2290c1 /plugins/zsh-navigation-tools | |
parent | 1bc186dabe12b3d01b2257e82f3a104c48b8b3c7 (diff) | |
parent | 78c91ccbf99c77bd4d9cdb74279a40776721f66d (diff) | |
download | zsh-49edbf438ed690c76e6b2af80368c59404cf0167.tar.gz zsh-49edbf438ed690c76e6b2af80368c59404cf0167.tar.bz2 zsh-49edbf438ed690c76e6b2af80368c59404cf0167.zip |
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'plugins/zsh-navigation-tools')
-rw-r--r-- | plugins/zsh-navigation-tools/.config/znt/README.txt | 1 | ||||
-rw-r--r-- | plugins/zsh-navigation-tools/README.md | 206 | ||||
-rwxr-xr-x | plugins/zsh-navigation-tools/doc/generate_single_file | 35 | ||||
-rw-r--r-- | plugins/zsh-navigation-tools/doc/img/n-history2.png | bin | 0 -> 108316 bytes | |||
-rwxr-xr-x | plugins/zsh-navigation-tools/doc/install.sh | 70 | ||||
-rw-r--r-- | plugins/zsh-navigation-tools/doc/n-preview | 224 | ||||
-rwxr-xr-x | plugins/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.zsh | 3 |
8 files changed, 349 insertions, 192 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..bdbfac976 100644 --- a/plugins/zsh-navigation-tools/README.md +++ b/plugins/zsh-navigation-tools/README.md @@ -1,207 +1,41 @@ [![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) +![znt logo](https://imageshack.com/a/img905/2629/WK9qjN.png) # 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) - - - -Videos: -- [https://youtu.be/QwZ8IJEgXRE](https://youtu.be/QwZ8IJEgXRE) -- [https://youtu.be/DN9QqssAYB8](https://youtu.be/DN9QqssAYB8) - -Screenshots: - -![n-history](http://imageshack.com/a/img921/5046/bqr0mk.png) - -![n-history](http://imageshack.com/a/img633/9905/WzfSdl.gif) - -Set of tools like `n-history` – multi-word history searcher, `n-cd` – directory -bookmark manager, `n-kill` – `htop` like kill utility, and more. Based on +Set of tools like `n-history` – multi-word history searcher, `n-cd` – directory +bookmark manager, `n-kill` – `htop` like kill utility, and more. Based on `n-list`, a tool generating selectable curses-based list of elements that has access to current `Zsh` session, i.e. has broad capabilities to work together with it. Feature highlights include incremental multi-word searching, approximate matching, ANSI coloring, themes, unique mode, horizontal scroll, grepping, advanced history management and various integrations with `Zsh`. -## News -* 06-10-2016 - - **Tmux-integration** – `Ctrl-B H` in Tmux to open `n-history` in new window. - Then select history entry, it will be copied to the original Tmux window. - Use this to execute local commands on remote hosts: - - ![tmux integration](http://imageshack.com/a/img922/4760/oyX7eN.gif) - - All that is needed is this line added to `~/.tmux.conf`: - - ``` - bind h run-shell -b "$ZNT_REPO_DIR/doc/znt-tmux.zsh" - ``` - - or – if Homebrew or other package manager is used: - - ``` - bind h run-shell -b "$ZNT_REPO_DIR/znt-tmux.zsh" - ``` - -* 16-05-2016 - - `n-kill` has completion. It proposes **words** from what's in `ps -A`. Giving `n-kill` - arguments means grepping – it will start only with matching `ps` entries. - -* 15-05-2016 - - Fixed problem where zsh-syntax-highlighting could render `n-history` slow (for - long history entries). - -* 14-05-2016 - - Configuration can be set from `zshrc` (starting from `v2.1.12`). Documentation is [below](#configuration). Example: - - ```zsh - znt_list_instant_select=1 - znt_list_border=0 - znt_list_bold=1 - znt_list_colorpair="green/black" - znt_functions_keywords=( "zplg" "zgen" "match" ) - znt_cd_active_text="underline" - znt_env_nlist_coloring_color=$'\x1b[00;33m' - znt_cd_hotlist=( "~/.config/znt" "/usr/share/zsh/site-functions" "/usr/share/zsh" - "/usr/local/share/zsh/site-functions" "/usr/local/share/zsh" - "/usr/local/bin" ) - ``` - -* 10-05-2016 - - Search query rotation – use `Ctrl-A` to rotate entered words right. - Words `1 2 3` become `3 1 2`. - -* 09-05-2016 - - New feature: n-help tool, available also from n-history via `H` key. It - displays help screen with various information on `ZNT`. - - ![n-help](http://imageshack.com/a/img922/7595/MvtJdI.gif) - -* 08-05-2016 - - Approximate matching – pressing `f` or `Ctrl-F` will enter "`FIX`" mode, - in which `1` or `2` errors are allowed in what's searched. This utilizes - original Zsh approximate matching features and is intended to be used - after entering search query, when a typo is discovered. - - ![fix mode](http://imageshack.com/a/img921/5756/64lFnv.gif) - -* 06-05-2016 - - Private history can be edited. Use `e` key or `Ctrl-E` for that when in - n-history. Your `$EDITOR` will start. This is a way to have handy set of - bookmarks prepared in private history's file. - - Border can be disabled. Use following snippet in `~/.config/znt/n-list.conf` - or any other tool-targetted config file: - - ```zsh - # Should draw the border? - local border=0 - ``` - -* 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). - 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) - already has set of 256-color themes prepared :) - - ![themes](http://imageshack.com/a/img924/4310/EbRh30.gif) - -* 29-04-2016 - - New feature: private history – n-history tracks selected history entries, - exposes them via new view (activated with `F1`). It is shared across all - sessions - -* 28-04-2016 - - New features: - 1. New n-history view (activated with `F1`): Most Frequent History Words - 2. Predefined search keywords – use F2 to quickly search for chosen - keywords (video: [https://youtu.be/DN9QqssAYB8](https://youtu.be/DN9QqssAYB8)) - 3. Configuration option for doing instant selection in search mode - -## Installation - -``` -sh -c "$(curl -fsSL https://raw.githubusercontent.com/psprint/zsh-navigation-tools/master/doc/install.sh)" -``` - -To update run the command again. - -`ZNT` will be installed at `~/.config/znt/zsh-navigation-tools`, config files will be copied to `~/.config/znt`. `.zshrc` -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 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`). -The config files will be available in `~/.config/znt`. - -## Installation With Antigen -Add `antigen bundle psprint/zsh-navigation-tools` to `.zshrc`. There also -should be `antigen apply`. The config files will be in `~/.config/znt`. - -## Single File Manual Installation - -Running script `doc/generate_single_file` will create single-file version of `ZNT`. -It can be sourced from `.zshrc`. Don't forget about configuration files as described -above. - -## Manual Installation - -After extracting `ZNT` to `{some-directory}` add following two lines -to `~/.zshrc`: +To use it, add `zsh-navigation-tools` to the plugins array in your zshrc file: ```zsh -fpath+=( {some-directory} ) -source "{some-directory}/zsh-navigation-tools.plugin.zsh" +plugins=(... zsh-navigation-tools) ``` -As you can see, no plugin manager is needed to use the `*.plugin.zsh` -file. The above two lines of code are all that almost **all** plugin -managers do. In fact, what's actually needed is only: +Also check out [![ZCA](https://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) -```zsh -source "{some-directory}/zsh-navigation-tools.plugin.zsh" -``` - -because `ZNT` detects if it is used by **any** plugin manager and can -handle `$fpath` update by itself. - -## Truly Manual Installation -Copy (or link) all `n-*` and `znt-*` files to **/usr/share/zsh/site-functions/** -(or **/usr/local/share/zsh/site-functions/**, check with `echo $fpath[1]`) and then add: - autoload n-list n-cd n-env n-kill n-panelize n-options n-aliases n-functions n-history n-help -to `~/.zshrc`. - -Create aliases to avoid typing of the minus sign "-": +Videos: +- [https://youtu.be/QwZ8IJEgXRE](https://youtu.be/QwZ8IJEgXRE) +- [https://youtu.be/DN9QqssAYB8](https://youtu.be/DN9QqssAYB8) -```zsh -alias naliases=n-aliases ncd=n-cd nenv=n-env nfunctions=n-functions nhistory=n-history -alias nkill=n-kill noptions=n-options npanelize=n-panelize nhelp=n-help -``` +Screenshots: -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: +![n-history](https://imageshack.com/a/img921/5046/bqr0mk.png) -```zsh -setopt AUTO_PUSHD -``` +![n-history](https://imageshack.com/a/img633/9905/WzfSdl.gif) -in `.zshrc` (also recommend `PUSHD_IGNORE_DUPS`). Without the option `n-cd` -will just work as incremental searcher of directory bookmarks. ## History Widget @@ -397,15 +231,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 +255,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 Binary files differnew file mode 100644 index 000000000..fa23de00d --- /dev/null +++ b/plugins/zsh-navigation-tools/doc/img/n-history2.png 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..54c819810 100644 --- a/plugins/zsh-navigation-tools/zsh-navigation-tools.plugin.zsh +++ b/plugins/zsh-navigation-tools/zsh-navigation-tools.plugin.zsh @@ -8,9 +8,10 @@ # # 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}" export ZNT_CONFIG_DIR="$HOME/.config/znt" |