aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/window.c9
-rw-r--r--test/functional/normal/tabpage_spec.lua13
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 <C-W>gT', function()
+ -- add some tabpages
+ command('tabnew')
+ command('tabnew')
+ command('tabnew')
+
+ eq(4, eval('tabpagenr()'))
+
+ feed('<C-W>gT')
+
+ eq(3, eval('tabpagenr()'))
+ end)
end)