Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Ohmyzsh
Commits
73591101
Commit
73591101
authored
Nov 02, 2016
by
psprint
Committed by
Marc Cornellà
Nov 02, 2016
Browse files
znt: Update to v2.2.7 (#5576)
parent
0f62b7a8
Changes
6
Hide whitespace changes
Inline
Side-by-side
plugins/zsh-navigation-tools/NEWS
0 → 100644
View file @
73591101
-------------------------------------
CHANGES FROM PREVIOUS VERSIONS OF ZNT
-------------------------------------
Changes from 2.2.1 to 2.2.7
---------------------------
Tmux integration has been added – bind file znt-tmux.zsh in Tmux as
described in README.md and e.g. run local history on remote hosts. Tmux
opens new window with n-history, and pastes selected history entry into
immediate previous window (e.g. a remote session). Fixed plugin.zsh file
to not use (outer scope) positional parameters. This fixes problem with
Grlm's Zsh configuration. The file now doesn't use "test" builtin (but
[[ instead), because it can be shadowed by alias or command. Private
history has been fixed to not overwrite its history file with the same
content. This improves performance when switching to private history
view.
plugins/zsh-navigation-tools/README.md
View file @
73591101
...
...
@@ -34,6 +34,60 @@ want to copy your previous data (from e.g. ~/.zhistory) into the new location.
## 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. All that is needed is
this line added to ~/.tmux.conf:
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. Example:
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.
*
08-05-2016
-
Approximate matching – pressing f or Ctrl-F will enter FIX mode, in
which 1 or 2 errors are allowed in what is searched. This utilizes
original Zsh approximate matching features and is intended to be used
after entering search query, when a typo is discovered.
*
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:
# 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. Use the file to
...
...
plugins/zsh-navigation-tools/n-history
View file @
73591101
...
...
@@ -307,7 +307,7 @@ while (( 1 )); do
elif
[
"
$active_view
"
=
"1"
]
;
then
if
[
-s
"
$private_history_db
"
]
;
then
local
title
=
$'
\x
1b[00;32m'
"Private history:"
$'
\x
1b[00;00m
\0
'
()
{
fc
-ap
-R
"
$private_history_db
"
;
list
=(
"
$title
"
${
history
[@]
}
)
}
()
{
fc
-
R
ap
"
$private_history_db
"
20000 0
;
list
=(
"
$title
"
${
history
[@]
}
)
}
else
list
=(
"Private history - history entries selected via this tool will be put here"
)
fi
...
...
@@ -335,21 +335,37 @@ done
if
[
"
$REPLY
"
-gt
0
]
;
then
selected
=
"
$reply
[REPLY]"
# Append to private history
if
[[
"
$active_view
"
=
"0"
]]
;
then
local
newline
=
$'
\n
'
local
selected_ph
=
"
${
selected
//
$newline
/\\
$newline
}
"
print
-r
--
"
$selected_ph
"
>>
"
$private_history_db
"
fi
# TMUX?
if
[[
"
$ZNT_TMUX_MODE
"
=
"1"
]]
;
then
tmux send
-t
"
$ZNT_TMUX_ORIGIN_SESSION
:
$ZNT_TMUX_ORIGIN_WINDOW
.
$ZNT_TMUX_ORIGIN_PANE
"
"
$selected
"
tmux kill-window
return
0
# ZLE?
if
[
"
${
(t)CURSOR
}
"
=
"integer-local-special"
]
;
then
el
if
[
"
${
(t)CURSOR
}
"
=
"integer-local-special"
]
;
then
zle .redisplay
zle .kill-buffer
LBUFFER+
=
"
$selected
"
# Append to private history
local
newline
=
$'
\n
'
selected
=
"
${
selected
//
$newline
/\\
$newline
}
"
[
"
$active_view
"
=
"0"
]
&&
print
-r
--
"
$selected
"
>>
"
$private_history_db
"
else
print
-zr
--
"
$selected
"
fi
else
[
"
${
(t)CURSOR
}
"
=
"integer-local-special"
]
&&
zle redisplay
# TMUX?
if
[[
"
$ZNT_TMUX_MODE
"
=
"1"
]]
;
then
tmux kill-window
# ZLE?
elif
[[
"
${
(t)CURSOR
}
"
=
"integer-local-special"
]]
;
then
zle redisplay
fi
fi
return
0
# vim: set filetype=zsh:
plugins/zsh-navigation-tools/n-list
View file @
73591101
...
...
@@ -310,8 +310,9 @@ while (( 1 )); do
colsearch_pattern
=
"
${
search_buffer
// ##/|(#a2)
}
"
list
=(
"
${
(@M)list
:#
(#ia2)*
$~search_pattern
*
}
"
)
else
# Pattern
s
will be *foo*~^*bar*
and (foo|bar
)
# Pattern will be *foo*~^*bar*
(inventor: Mikael Magnusson
)
search_pattern
=
"
${
search_buffer
// ##/*~^*
}
"
# Pattern will be (foo|bar)
colsearch_pattern
=
"
${
search_buffer
// ##/|
}
"
list
=(
"
${
(@M)list
:#
(#i)*
$~search_pattern
*
}
"
)
fi
...
...
plugins/zsh-navigation-tools/znt-tmux.zsh
0 → 100755
View file @
73591101
#!/usr/bin/env zsh
# Copyright (c) 2016, Zsolt Lengyel
# Modifications copyright (c) 2016, Sebastian Gniazdowski
#
# This script opens a new, temporary tmux pane and runs n-history. When
# a selection is made, the result (history entry) is pasted back into
# original tmux pane, and the temporary pane is closed. This allows to
# use local history on remote machines.
#
# 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"
#
# get and save the current active tmux pane id
active_pane
=
$(
tmux display
-p
-F
':#{session_id}:#I:#P:#{pane_active}:#{window_active}:#{session_attached}'
)
a_active_pane
=(
"
${
(@s/
:/
)active_pane
}
"
)
active_session
=
${
a_active_pane
[2]//
$}
active_window=
$a_active_pane
[3]
active_pane=
$a_active_pane
[4]
# set variables for upcoming window
tmux setenv -t
$active_session
:
$active_window
.
$active_pane
"ZNT_TMUX_MODE"
1
tmux setenv -t
$active_session
:
$active_window
.
$active_pane
"ZNT_TMUX_ORIGIN_SESSION"
"
$active_session
"
tmux setenv -t
$active_session
:
$active_window
.
$active_pane
"ZNT_TMUX_ORIGIN_WINDOW"
"
$active_window
"
tmux setenv -t
$active_session
:
$active_window
.
$active_pane
"ZNT_TMUX_ORIGIN_PANE"
"
$active_pane
"
# create a new window in the active session and call it znt-hist
tmux new-window -t
$active_session
:
-n znt-hist
# unset the variables, so only above single window has them
tmux setenv -u -t
$active_session
:
$active_window
.
$active_pane
"ZNT_TMUX_MODE"
tmux setenv -u -t
$active_session
:
$active_window
.
$active_pane
"ZNT_TMUX_ORIGIN_SESSION"
tmux setenv -u -t
$active_session
:
$active_window
.
$active_pane
"ZNT_TMUX_ORIGIN_WINDOW"
tmux setenv -u -t
$active_session
:
$active_window
.
$active_pane
"ZNT_TMUX_ORIGIN_PANE"
# znt
's session id
znt_active_pane=$(tmux display -p -F '
:#
{session_id
}
:#I:#P:#
{
pane_active
}
:#
{
window_active
}
:#
{
session_attached
}
' )
znt_a_active_pane=("${(@s/:/)znt_active_pane}")
znt_active_session=${znt_a_active_pane[2]//$}
znt_active_window=$znt_a_active_pane[3]
znt_active_pane=$znt_a_active_pane[4]
# call znt
tmux send -t "$znt_active_session:$znt_active_window.$znt_active_pane" n-history ENTER
plugins/zsh-navigation-tools/zsh-navigation-tools.plugin.zsh
View file @
73591101
#!/usr/bin/env zsh
REPO_DIR
=
"
${
0
%/*
}
"
CONFIG_DIR
=
"
$HOME
/.config/znt"
0
=
"
${
(%)
:-
%N
}
"
# this gives immunity to functionargzero being unset
export
ZNT_REPO_DIR
=
"
${
0
%/*
}
"
export
ZNT_CONFIG_DIR
=
"
$HOME
/.config/znt"
#
# Copy configs
#
if
!
test
-d
"
$HOME
/.config"
;
then
mkdir
"
$HOME
/.config"
if
[[
!
-d
"
$HOME
/.config"
]]
;
then
command
mkdir
"
$HOME
/.config"
fi
if
!
test
-d
"
$CONFIG_DIR
"
;
then
mkdir
"
$CONFIG_DIR
"
if
[[
!
-d
"
$
ZNT_
CONFIG_DIR
"
]]
;
then
command
mkdir
"
$
ZNT_
CONFIG_DIR
"
fi
# 9 files
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
unset
__ZNT_CONFIG_FILES
typeset
-ga
__ZNT_CONFIG_FILES
set
+A __ZNT_CONFIG_FILES 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
# Check for random 2 files if they exist
# This will shift 0 - 7 elements
shift
$((
RANDOM
%
8
))
if
!
test
-f
"
$CONFIG_DIR
/
$
1
"
||
!
test
-f
"
$CONFIG_DIR
/
$
2
"
;
then
shift
$((
RANDOM
%
8
))
__ZNT_CONFIG_FILES
if
[[
!
-f
"
$
ZNT_
CONFIG_DIR
/
$
{
__ZNT_CONFIG_FILES
[1]
}
"
||
!
-f
"
$
ZNT_
CONFIG_DIR
/
$
{
__ZNT_CONFIG_FILES
[2]
}
"
]]
;
then
# Something changed - examine every file
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
"
$CONFIG_DIR
/
$i
"
;
then
cp
"
$REPO_DIR
/.config/znt/
$i
"
"
$CONFIG_DIR
"
set
+A __ZNT_CONFIG_FILES 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
unset
__ZNT_CONFIG_FILE
typeset
-g
__ZNT_CONFIG_FILE
for
__ZNT_CONFIG_FILE
in
"
${
__ZNT_CONFIG_FILES
[@]
}
"
;
do
if
[[
!
-f
"
$ZNT_CONFIG_DIR
/
$__ZNT_CONFIG_FILE
"
]]
;
then
command cp
"
$ZNT_REPO_DIR
/.config/znt/
$__ZNT_CONFIG_FILE
"
"
$ZNT_CONFIG_DIR
"
fi
done
unset
__ZNT_CONFIG_FILE
fi
# Don't leave positional parameters being set
set
--
unset
__ZNT_CONFIG_FILES
#
# Load functions
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment