From 42aa8764881ed8572d563766575c053db085f6db Mon Sep 17 00:00:00 2001 From: We're Yet <58348703+butwerenotthereyet@users.noreply.github.com> Date: Wed, 1 Jan 2020 09:52:13 -0800 Subject: [PATCH 1/2] vim-patch:8.1.0972: cannot switch from terminal window to next tabpage Problem: Cannot switch from terminal window to next tabpage. Solution: Make CTRL-W gt move to next tabpage. https://github.com/vim/vim/commit/72e83c1ae535e2ebc35b114d34d0a811eb62b068 --- src/nvim/window.c | 3 +++ test/functional/normal/tabpage_spec.lua | 25 +++++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 test/functional/normal/tabpage_spec.lua diff --git a/src/nvim/window.c b/src/nvim/window.c index 4d105dd11e..d62510b951 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -528,6 +528,9 @@ wingotofile: cmdmod.tab = tabpage_index(curtab) + 1; nchar = xchar; goto wingotofile; + case 't': // CTRL-W gt: go to next tab page + goto_tabpage((int)Prenum); + break; case 'e': if (curwin->w_floating || !ui_has(kUIMultigrid)) { diff --git a/test/functional/normal/tabpage_spec.lua b/test/functional/normal/tabpage_spec.lua new file mode 100644 index 0000000000..68524eaf91 --- /dev/null +++ b/test/functional/normal/tabpage_spec.lua @@ -0,0 +1,25 @@ +local helpers = require('test.functional.helpers')(after_each) + +local clear = helpers.clear +local command = helpers.command +local eq = helpers.eq +local feed = helpers.feed +local eval = helpers.eval + +describe('tabpage', function() + before_each(clear) + + it('advances to the next page via gt', function() + -- add some tabpages + command('tabnew') + command('tabnew') + command('tabnew') + + eq(4, eval('tabpagenr()')) + + feed('gt') + + eq(1, eval('tabpagenr()')) + end) +end) + From a7b6b375196ad2d0531550b2e1c7888502c9512b Mon Sep 17 00:00:00 2001 From: We're Yet <58348703+butwerenotthereyet@users.noreply.github.com> Date: Wed, 1 Jan 2020 10:08:06 -0800 Subject: [PATCH 2/2] vim-patch:8.1.0974: cannot switch from terminal window to previous tabpage Problem: Cannot switch from terminal window to previous tabpage. Solution: Make CTRL-W gT move to previous tabpage. https://github.com/vim/vim/commit/882d02eeb571a13a502fe82a04c9eaffa630c294 --- src/nvim/window.c | 9 +++++---- test/functional/normal/tabpage_spec.lua | 13 +++++++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/nvim/window.c b/src/nvim/window.c index d62510b951..8feedf2de6 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -85,10 +85,7 @@ do_window( size_t len; char cbuf[40]; - if (Prenum == 0) - Prenum1 = 1; - else - Prenum1 = Prenum; + Prenum1 = Prenum == 0 ? 1 : Prenum; # define CHECK_CMDWIN \ do { \ @@ -532,6 +529,10 @@ wingotofile: goto_tabpage((int)Prenum); break; + case 'T': // CTRL-W gT: go to previous tab page + goto_tabpage(-(int)Prenum1); + break; + case 'e': if (curwin->w_floating || !ui_has(kUIMultigrid)) { beep_flush(); diff --git a/test/functional/normal/tabpage_spec.lua b/test/functional/normal/tabpage_spec.lua index 68524eaf91..d1d6854b07 100644 --- a/test/functional/normal/tabpage_spec.lua +++ b/test/functional/normal/tabpage_spec.lua @@ -21,5 +21,18 @@ describe('tabpage', function() eq(1, eval('tabpagenr()')) end) + + it('retreats to the previous page via gT', function() + -- add some tabpages + command('tabnew') + command('tabnew') + command('tabnew') + + eq(4, eval('tabpagenr()')) + + feed('gT') + + eq(3, eval('tabpagenr()')) + end) end)