From 7443688ea54607f828e8fb22eeb211e4dfd8eb57 Mon Sep 17 00:00:00 2001 From: Michael van der Kamp Date: Tue, 28 Oct 2025 19:12:56 -0700 Subject: [PATCH 1/6] Use last-pane when we already know the runner type --- plugin/vimux.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/vimux.vim b/plugin/vimux.vim index ebf8e0f..0b97e47 100644 --- a/plugin/vimux.vim +++ b/plugin/vimux.vim @@ -129,7 +129,7 @@ function! VimuxTogglePane() abort call VimuxTmux('join-pane -s '.g:VimuxRunnerIndex.' '.s:vimuxPaneOptions()) let g:VimuxRunnerType = 'pane' let g:VimuxRunnerIndex = s:tmuxIndex() - call VimuxTmux('last-'.VimuxOption('VimuxRunnerType')) + call VimuxTmux('last-pane') elseif VimuxOption('VimuxRunnerType') ==# 'pane' let g:VimuxRunnerIndex=substitute( \ VimuxTmux('break-pane -d -s '.g:VimuxRunnerIndex." -P -F '#{window_id}'"), From 75f66f932f2da60c309ff0cd5c6397c391308f40 Mon Sep 17 00:00:00 2001 From: Michael van der Kamp Date: Tue, 28 Oct 2025 20:27:33 -0700 Subject: [PATCH 2/6] Zoom the runner across windows and sessions --- plugin/vimux.vim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin/vimux.vim b/plugin/vimux.vim index 0b97e47..af4ef8c 100644 --- a/plugin/vimux.vim +++ b/plugin/vimux.vim @@ -146,10 +146,10 @@ endfunction function! VimuxZoomRunner() abort if s:hasRunner() + call VimuxTmux('switch-client -t '.g:VimuxRunnerIndex) + call VimuxTmux('select-window -t '.g:VimuxRunnerIndex) if VimuxOption('VimuxRunnerType') ==# 'pane' call VimuxTmux('resize-pane -Z -t '.g:VimuxRunnerIndex) - elseif VimuxOption('VimuxRunnerType') ==# 'window' - call VimuxTmux('select-window -t '.g:VimuxRunnerIndex) endif else call s:echoNoRunner() From eb54827b10b13946a74e7d00ce191fdc62ce9f40 Mon Sep 17 00:00:00 2001 From: Michael van der Kamp Date: Tue, 28 Oct 2025 20:38:22 -0700 Subject: [PATCH 3/6] Inspect the runner across windows and sessions --- plugin/vimux.vim | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugin/vimux.vim b/plugin/vimux.vim index af4ef8c..b39badd 100644 --- a/plugin/vimux.vim +++ b/plugin/vimux.vim @@ -158,8 +158,10 @@ endfunction function! VimuxInspectRunner() abort if s:hasRunner() - call VimuxTmux('select-'.VimuxOption('VimuxRunnerType').' -t '.g:VimuxRunnerIndex) - call VimuxTmux('copy-mode') + call VimuxTmux('switch-client -t '.g:VimuxRunnerIndex) + call VimuxTmux('select-window -t '.g:VimuxRunnerIndex) + call VimuxTmux('select-pane -t '.g:VimuxRunnerIndex) + call VimuxTmux('copy-mode -t '.g:VimuxRunnerIndex) return v:true endif call s:echoNoRunner() From 24afaa11201e780c66b630eeb5ad4ae495fa86cf Mon Sep 17 00:00:00 2001 From: Michael van der Kamp Date: Tue, 28 Oct 2025 20:38:37 -0700 Subject: [PATCH 4/6] Provide VimuxHasRunner() to help debug --- plugin/vimux.vim | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugin/vimux.vim b/plugin/vimux.vim index b39badd..6e8e9ef 100644 --- a/plugin/vimux.vim +++ b/plugin/vimux.vim @@ -353,6 +353,10 @@ function! s:tmuxProperty(property) abort return substitute(VimuxTmux("display -p '".a:property."'"), '\n$', '', '') endfunction +function! VimuxHasRunner() abort + return s:hasRunner() +endfunction + function! s:hasRunner() abort if get(g:, 'VimuxRunnerIndex', '') ==? '' return v:false From 8136d5013ebbcd627eebb292fc29f8bc7b97588b Mon Sep 17 00:00:00 2001 From: Michael van der Kamp Date: Tue, 28 Oct 2025 20:43:31 -0700 Subject: [PATCH 5/6] Split up command and match lines --- plugin/vimux.vim | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugin/vimux.vim b/plugin/vimux.vim index 6e8e9ef..0af171d 100644 --- a/plugin/vimux.vim +++ b/plugin/vimux.vim @@ -362,7 +362,8 @@ function! s:hasRunner() abort return v:false endif let runnerType = VimuxOption('VimuxRunnerType') - let l:found = match(VimuxTmux('list-'.runnerType."s -a -F '#{".runnerType."_id}'"), g:VimuxRunnerIndex) + let l:command = 'list-'.runnerType."s -a -F '#{".runnerType."_id}'" + let l:found = match(VimuxTmux(l:command), g:VimuxRunnerIndex) return l:found != -1 endfunction From 383d711a4eda6b00d7095b8a64e21ca8fd64bde1 Mon Sep 17 00:00:00 2001 From: Michael van der Kamp Date: Tue, 28 Oct 2025 20:43:51 -0700 Subject: [PATCH 6/6] Specify end-of-word pattern to match runner ID --- plugin/vimux.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/vimux.vim b/plugin/vimux.vim index 0af171d..28c7153 100644 --- a/plugin/vimux.vim +++ b/plugin/vimux.vim @@ -363,7 +363,7 @@ function! s:hasRunner() abort endif let runnerType = VimuxOption('VimuxRunnerType') let l:command = 'list-'.runnerType."s -a -F '#{".runnerType."_id}'" - let l:found = match(VimuxTmux(l:command), g:VimuxRunnerIndex) + let l:found = match(VimuxTmux(l:command), g:VimuxRunnerIndex.'\>') return l:found != -1 endfunction