diff src/normal.c @ 21703:22583b9d4efd v8.2.1401

patch 8.2.1401: cannot jump to the last used tabpage Commit: https://github.com/vim/vim/commit/62a232506d06f6d1b3b7271801c907d6294dfe84 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Aug 9 14:04:42 2020 +0200 patch 8.2.1401: cannot jump to the last used tabpage Problem: Cannot jump to the last used tabpage. Solution: Add g<Tab> and tabpagnr('#'). (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/6661, neovim #11626)
author Bram Moolenaar <Bram@vim.org>
date Sun, 09 Aug 2020 14:15:04 +0200
parents b530a433fe7d
children f65e76638eb5
line wrap: on
line diff
--- a/src/normal.c
+++ b/src/normal.c
@@ -5442,7 +5442,7 @@ nv_gomark(cmdarg_T *cap)
 }
 
 /*
- * Handle CTRL-O, CTRL-I, "g;" and "g," commands.
+ * Handle CTRL-O, CTRL-I, "g;", "g," and "CTRL-Tab" commands.
  */
     static void
 nv_pcmark(cmdarg_T *cap)
@@ -5456,6 +5456,12 @@ nv_pcmark(cmdarg_T *cap)
 
     if (!checkclearopq(cap->oap))
     {
+	if (cap->cmdchar == TAB && mod_mask == MOD_MASK_CTRL)
+	{
+	    if (goto_tabpage_lastused() == FAIL)
+		clearopbeep(cap->oap);
+	    return;
+	}
 	if (cap->cmdchar == 'g')
 	    pos = movechangelist((int)cap->count1);
 	else
@@ -6310,6 +6316,11 @@ nv_g_cmd(cmdarg_T *cap)
 	    goto_tabpage(-(int)cap->count1);
 	break;
 
+    case TAB:
+	if (!checkclearop(oap) && goto_tabpage_lastused() == FAIL)
+	    clearopbeep(oap);
+	break;
+
     case '+':
     case '-': // "g+" and "g-": undo or redo along the timeline
 	if (!checkclearopq(oap))