In the tmux-repl, it tackles the situations where there is already some other tmux pane open
and we want to send text (or do other works) in that specific pane.
This commit is contained in:
parent
e454b393cf
commit
25ffbacb70
|
@ -35,6 +35,35 @@ define-command tmux-repl-window -params 0.. -command-completion -docstring "Crea
|
|||
tmux-repl-impl 'new-window' %arg{@}
|
||||
}
|
||||
|
||||
define-command -params 0..1 tmux-repl-set-pane -docstring %{
|
||||
tmux-repl-set-pane [pane number]: Set an existing tmux pane for repl interaction
|
||||
If the address of new pane is not given, next pane is used
|
||||
(To get the pane number in tmux,
|
||||
use 'tmux display-message -p '#{pane_id}'" in that pane)
|
||||
} %{
|
||||
evaluate-commands %sh{
|
||||
if [ -z "$TMUX" ]; then
|
||||
echo 'fail This command is only available in a tmux session'
|
||||
exit
|
||||
fi
|
||||
if [ $# -eq 0 ]; then
|
||||
curr_pane="$(tmux display-message -p '#{pane_id}')"
|
||||
curr_pane_no="${curr_pane:1}"
|
||||
tgt_pane=$((curr_pane_no+1))
|
||||
else
|
||||
tgt_pane="$1"
|
||||
fi
|
||||
curr_win="$(tmux display-message -p '#{window_id}')"
|
||||
curr_win_no="${curr_win:1}"
|
||||
current=$(tmux list-panes -t $curr_win_no -F \#D)
|
||||
if [[ "$current" =~ "%"$tgt_pane ]]; then
|
||||
printf "set-option current tmux_repl_id '%s'" $(tmux display-message -p '#{session_id}:#{window_id}.')%$tgt_pane
|
||||
else
|
||||
echo 'fail The correct pane is not there. Activate using tmux-terminal-* or some other way'
|
||||
fi
|
||||
}
|
||||
}
|
||||
|
||||
define-command -hidden tmux-send-text -params 0..1 -docstring %{
|
||||
tmux-send-text [text]: Send text to the REPL pane.
|
||||
If no text is passed, then the selection is used
|
||||
|
|
Loading…
Reference in New Issue
Block a user