mirror of
https://github.com/neovim/neovim.git
synced 2025-09-23 11:38:31 +00:00
tabpage: track last-used tabpage #11626
In a multi-window scenario, it is possible to return focus to the last accessed window via n_CTRL-W_p. However, in the case of a multi-tab scenario, there was previously no way to return focus to the last accessed *tab*. Here, that ability is added via n_g<tab>. Additionally, the index of the previous tab is exposed via tabpagenr('#'), mirroring the existing functionality of winnr('#').
This commit is contained in:

committed by
Justin M. Keyes

parent
2c62b2fc56
commit
cbc8d72fde
@@ -6312,9 +6312,7 @@ static void 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)
|
||||
{
|
||||
pos_T *pos;
|
||||
@@ -6322,11 +6320,16 @@ static void nv_pcmark(cmdarg_T *cap)
|
||||
const bool old_KeyTyped = KeyTyped; // getting file may reset it
|
||||
|
||||
if (!checkclearopq(cap->oap)) {
|
||||
if (cap->cmdchar == 'g')
|
||||
if (cap->cmdchar == TAB && mod_mask == MOD_MASK_CTRL) {
|
||||
goto_tabpage_lastused();
|
||||
return;
|
||||
}
|
||||
if (cap->cmdchar == 'g') {
|
||||
pos = movechangelist((int)cap->count1);
|
||||
else
|
||||
} else {
|
||||
pos = movemark((int)cap->count1);
|
||||
if (pos == (pos_T *)-1) { /* jump to other file */
|
||||
}
|
||||
if (pos == (pos_T *)-1) { // jump to other file
|
||||
curwin->w_set_curswant = true;
|
||||
check_cursor();
|
||||
} else if (pos != NULL) /* can jump */
|
||||
@@ -7059,6 +7062,11 @@ static void nv_g_cmd(cmdarg_T *cap)
|
||||
if (!checkclearop(oap))
|
||||
goto_tabpage(-(int)cap->count1);
|
||||
break;
|
||||
case TAB:
|
||||
if (!checkclearop(oap)) {
|
||||
goto_tabpage_lastused();
|
||||
}
|
||||
break;
|
||||
|
||||
case '+':
|
||||
case '-': /* "g+" and "g-": undo or redo along the timeline */
|
||||
|
Reference in New Issue
Block a user