Paul
Paul

Reputation: 759

Switch to last-active tab in VIM

In Vim, is there a way to quickly toggle between the current tab and the last-active tab? Sort of the way '' toggles between the current line and the last-active line. Plugins / keyboard mappings / voodoo all acceptable.

Upvotes: 47

Views: 8972

Answers (5)

Sudhanshu
Sudhanshu

Reputation: 2871

Press g<Tab> in Normal mode to go to previously visited tab. This is a standard command added in v8.2.1401. No need to make any changes to config.

Upvotes: 14

Lucas Oman
Lucas Oman

Reputation: 15872

Put this in your .vimrc:

if !exists('g:lasttab')
  let g:lasttab = 1
endif
nmap <Leader>tl :exe "tabn ".g:lasttab<CR>
au TabLeave * let g:lasttab = tabpagenr()

Then, in normal mode, type \tl to swap to the tab you viewed last.

Upvotes: 73

Innocent9902
Innocent9902

Reputation: 9

here's a solution in lua for folks that uses neovim also make sure to change <A-S-b> to your favorite keybinding.

-- switching to last active tab
vim.api.nvim_create_autocmd("TabLeave",  {
    pattern = "*",
    callback = function()
        vim.api.nvim_set_keymap('n', '<A-S-b>', '<cmd>tabn ' .. vim.api.nvim_tabpage_get_number(0) .. '<CR>', { noremap = true, silent = true })
    end
})

Upvotes: -1

Hongbo Liu
Hongbo Liu

Reputation: 3054

Fix the potential issue when a tab is closed:

" Switch to last-active tab
if !exists('g:Lasttab')
    let g:Lasttab = 1
    let g:Lasttab_backup = 1
endif
autocmd! TabLeave * let g:Lasttab_backup = g:Lasttab | let g:Lasttab = tabpagenr()
autocmd! TabClosed * let g:Lasttab = g:Lasttab_backup
nmap <silent> <Leader>` :exe "tabn " . g:Lasttab<cr>

Upvotes: 6

ppbitb
ppbitb

Reputation: 517

I use buffers and not tabs, but I am able to switch between the current and latest used buffer using :b#
Basics of using buffers are:

:e filename to open file in new buffer  
:bn to go to next buffer  
:bp to go to previous buffer  
:bd to close current buffer 

Upvotes: 2

Related Questions