From f8f33ed2525689c9c78a5be741d36aa02a81b34c Mon Sep 17 00:00:00 2001 From: Doug Krieger Date: Mon, 11 Jul 2016 18:48:24 -0400 Subject: [PATCH 1/4] Extend Vimux to add option 'VimuxUseLast' --- plugin/vimux.vim | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/plugin/vimux.vim b/plugin/vimux.vim index 9170668..98cd222 100644 --- a/plugin/vimux.vim +++ b/plugin/vimux.vim @@ -66,8 +66,11 @@ endfunction function! VimuxOpenRunner() let nearestIndex = _VimuxNearestIndex() + let lastIndex = _VimuxLastIndex() - if _VimuxOption("g:VimuxUseNearest", 1) == 1 && nearestIndex != -1 + if _VimuxOption("g:VimuxUseLast", 1) == 1 && lastIndex != -1 + let g:VimuxRunnerIndex = lastIndex + elseif _VimuxOption("g:VimuxUseNearest", 1) == 1 && nearestIndex != -1 let g:VimuxRunnerIndex = nearestIndex else if _VimuxRunnerType() == "pane" @@ -182,6 +185,22 @@ function! _VimuxNearestIndex() return -1 endfunction +function! _VimuxLastIndex() + + let currentID = _VimuxTmuxPaneIndex() + + call _VimuxTmux("last-pane") + let lastID = _VimuxTmuxPaneIndex() + call _VimuxTmux("last-pane") + + if currentID != lastID + return lastID + else + return -1 + endif + +endfunction + function! _VimuxRunnerType() return _VimuxOption("g:VimuxRunnerType", "pane") endfunction From 9ec2d61a71cce81d599226ac5668550550a297ad Mon Sep 17 00:00:00 2001 From: Doug Krieger Date: Tue, 12 Jul 2016 18:35:38 -0400 Subject: [PATCH 2/4] If runner is 'pane', don't span windows --- plugin/vimux.vim | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/plugin/vimux.vim b/plugin/vimux.vim index 98cd222..bc7a7e0 100644 --- a/plugin/vimux.vim +++ b/plugin/vimux.vim @@ -194,11 +194,17 @@ function! _VimuxLastIndex() call _VimuxTmux("last-pane") if currentID != lastID - return lastID - else - return -1 + if _VimuxRunnerType() == "window" + return lastID + elseif _VimuxRunnerType() == "pane" + if split(currentID, "\\.")[0] == split(lastID, "\\.")[0] + return lastID + endif + endif endif + return -1 + endfunction function! _VimuxRunnerType() From c6818310541c9beef04c8329d01f582586891450 Mon Sep 17 00:00:00 2001 From: Doug Krieger Date: Tue, 12 Jul 2016 19:03:27 -0400 Subject: [PATCH 3/4] Include session name when checking if runner exists --- plugin/vimux.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/vimux.vim b/plugin/vimux.vim index 9170668..964a51a 100644 --- a/plugin/vimux.vim +++ b/plugin/vimux.vim @@ -199,5 +199,5 @@ function! _VimuxTmuxProperty(property) endfunction function! _VimuxHasRunner(index) - return match(_VimuxTmux("list-"._VimuxRunnerType()."s -a"), a:index.":") + return match(_VimuxTmux("list-"._VimuxRunnerType()."s -a"), _VimuxTmuxSession().":".a:index.":") endfunction From c27abcfd74fa1559be76258373e1e90bc2211374 Mon Sep 17 00:00:00 2001 From: dkrieger Date: Fri, 20 Jan 2017 17:44:51 -0500 Subject: [PATCH 4/4] Update README.mkd --- README.mkd | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.mkd b/README.mkd index fd4f2a2..5cd7406 100644 --- a/README.mkd +++ b/README.mkd @@ -1,5 +1,8 @@ # vimux - +## begin fork notes +### Feature: VimuxUseLast +`let g:VimuxUseLast = 1` => when choosing vimux runner pane, use last active tmux pane +## end fork notes Easily interact with tmux from vim. ![vimux](https://www.braintreepayments.com/assets/images/blog/vimux3.png)