From e25490dc7f25b3492313c998472a2a95d892fe15 Mon Sep 17 00:00:00 2001 From: Gokcehan Kara Date: Tue, 26 Jan 2016 15:04:48 +0200 Subject: [PATCH] split tmux repl functionality to tmux-repl.kak --- rc/tmux-repl.kak | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ rc/tmux.kak | 42 --------------------------------------- 2 files changed, 51 insertions(+), 42 deletions(-) create mode 100644 rc/tmux-repl.kak diff --git a/rc/tmux-repl.kak b/rc/tmux-repl.kak new file mode 100644 index 00000000..f9a1163a --- /dev/null +++ b/rc/tmux-repl.kak @@ -0,0 +1,51 @@ +# http://tmux.github.io/ +# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ + +hook global KakBegin .* %{ + %sh{ + if [ -n "$TMUX" ]; then + echo "alias global repl tmux-repl-horizontal" + echo "alias global send-text tmux-send-text" + fi + } +} + +def -hidden -params 1..2 tmux-repl-impl %{ + %sh{ + if [ -z "$TMUX" ]; then + echo "echo -color Error This command is only available in a tmux session" + exit + fi + tmux_args="$1" + shift + tmux_cmd="$@" + tmux $tmux_args $tmux_cmd + tmux set-buffer -b kak_repl_window $(tmux display-message -p '#I') + tmux set-buffer -b kak_repl_pane $(tmux display-message -p '#P') + } +} + +def tmux-repl-vertical -params 0..1 -command-completion -docstring "Create a new vertical pane in tmux for repl interaction" %{ + tmux-repl-impl 'split-window -v' %arg{@} +} + +def tmux-repl-horizontal -params 0..1 -command-completion -docstring "Create a new horizontal pane in tmux for repl interaction" %{ + tmux-repl-impl 'split-window -h' %arg{@} +} + +def tmux-repl-window -params 0..1 -command-completion -docstring "Create a new window in tmux for repl interaction" %{ + tmux-repl-impl 'new-window' %arg{@} +} + +def tmux-send-text -docstring "Send selected text to the repl pane in tmux" %{ + %sh{ + tmux set-buffer -b kak_selection "${kak_selection}" + kak_orig_window=$(tmux display-message -p '#I') + kak_orig_pane=$(tmux display-message -p '#P') + tmux select-window -t:$(tmux show-buffer -b kak_repl_window) + tmux select-pane -t:.$(tmux show-buffer -b kak_repl_pane) + tmux paste-buffer -b kak_selection + tmux select-window -t:${kak_orig_window} + tmux select-pane -t:.${kak_orig_pane} + } +} diff --git a/rc/tmux.kak b/rc/tmux.kak index e514cf9a..48525db6 100644 --- a/rc/tmux.kak +++ b/rc/tmux.kak @@ -7,8 +7,6 @@ hook global KakBegin .* %{ if [ -n "$TMUX" ]; then echo "alias global focus tmux-focus" echo "alias global new tmux-new-horizontal" - echo "alias global repl tmux-repl-horizontal" - echo "alias global send-text tmux-send-text" fi } } @@ -39,46 +37,6 @@ def tmux-new-window -params .. -command-completion -docstring "Create a new wind tmux-new-impl 'new-window' %arg{@} } -def -hidden -params 1..2 tmux-repl-impl %{ - %sh{ - if [ -z "$TMUX" ]; then - echo "echo -color Error This command is only available in a tmux session" - exit - fi - tmux_args="$1" - shift - tmux_cmd="$@" - tmux $tmux_args $tmux_cmd - tmux set-buffer -b kak_repl_window $(tmux display-message -p '#I') - tmux set-buffer -b kak_repl_pane $(tmux display-message -p '#P') - } -} - -def tmux-repl-vertical -params 0..1 -command-completion -docstring "Create a new vertical pane in tmux for repl interaction" %{ - tmux-repl-impl 'split-window -v' %arg{@} -} - -def tmux-repl-horizontal -params 0..1 -command-completion -docstring "Create a new horizontal pane in tmux for repl interaction" %{ - tmux-repl-impl 'split-window -h' %arg{@} -} - -def tmux-repl-window -params 0..1 -command-completion -docstring "Create a new window in tmux for repl interaction" %{ - tmux-repl-impl 'new-window' %arg{@} -} - -def tmux-send-text -docstring "Send selected text to the repl pane in tmux" %{ - %sh{ - tmux set-buffer -b kak_selection "${kak_selection}" - kak_orig_window=$(tmux display-message -p '#I') - kak_orig_pane=$(tmux display-message -p '#P') - tmux select-window -t:$(tmux show-buffer -b kak_repl_window) - tmux select-pane -t:.$(tmux show-buffer -b kak_repl_pane) - tmux paste-buffer -b kak_selection - tmux select-window -t:${kak_orig_window} - tmux select-pane -t:.${kak_orig_pane} - } -} - def -docstring "focus given client" \ -params 0..1 -client-completion \ tmux-focus %{ %sh{