mirror of
https://github.com/neovim/neovim.git
synced 2025-09-28 22:18:33 +00:00
vim-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 vim/vim#6661, neovim #11626)62a232506d
Nvim implemented this feature before Vim, but Vim made some useful changes (e.g: beeping on failure). Port the changes to closer match Vim (also makes porting future patches easier). Also note that because CHECK_CMDWIN was added to goto_tabpage_tp, there is no need to do the extra work with tabpage_index and goto_tabpage inside goto_tabpage_lastused to fix cmdwin issues any more (#11692). Note that while goto_tabpage_tp doesn't check for textlock like goto_tabpage does, it shouldn't matter as it is already checked for earlier. Add tags for <C-Tab> to tabpage.txt, and refer to <C-Tab> over CTRL-Tab to be consistent with other docs like the patch. Remove mention of "previous tabpage" (it can be confused with the tabpage to the left, e.g: `:tabprevious`). Similarly, don't rename old_curtab to last_tab in enter_tabpage (it might be confused with the right-most tabpage, e.g: `:tablast`). Cherry-pick Test_tabpage change from v8.2.0634.92b83ccfda
This commit is contained in:
@@ -5869,7 +5869,7 @@ static void nv_gomark(cmdarg_T *cap)
|
||||
}
|
||||
}
|
||||
|
||||
// Handle CTRL-O, CTRL-I, "g;", "g,", and "CTRL-Tab" commands.
|
||||
/// Handle CTRL-O, CTRL-I, "g;", "g,", and "CTRL-Tab" commands.
|
||||
static void nv_pcmark(cmdarg_T *cap)
|
||||
{
|
||||
pos_T *pos;
|
||||
@@ -5878,7 +5878,9 @@ static void nv_pcmark(cmdarg_T *cap)
|
||||
|
||||
if (!checkclearopq(cap->oap)) {
|
||||
if (cap->cmdchar == TAB && mod_mask == MOD_MASK_CTRL) {
|
||||
goto_tabpage_lastused();
|
||||
if (!goto_tabpage_lastused()) {
|
||||
clearopbeep(cap->oap);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (cap->cmdchar == 'g') {
|
||||
@@ -6642,9 +6644,10 @@ static void nv_g_cmd(cmdarg_T *cap)
|
||||
goto_tabpage(-(int)cap->count1);
|
||||
}
|
||||
break;
|
||||
|
||||
case TAB:
|
||||
if (!checkclearop(oap)) {
|
||||
goto_tabpage_lastused();
|
||||
if (!checkclearop(oap) && !goto_tabpage_lastused()) {
|
||||
clearopbeep(oap);
|
||||
}
|
||||
break;
|
||||
|
||||
|
Reference in New Issue
Block a user