forked from extern/ohmyzsh
068feca15d
BREAKING CHANGE: the `zsh-navigation-tools` plugin now bundles the version from the zdharma-continuum project, which republished the projects that psprint deleted (we don't yet know yet why). In theory this change doesn't break anything, but be aware of the change and that the upstream repository now lives somewhere else. Source: https://github.com/zdharma-continuum/zsh-navigation-tools/commit/67b24e1
51 lines
2.1 KiB
Bash
Executable File
51 lines
2.1 KiB
Bash
Executable File
#!/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/doc/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
|