A minimal Tabline plugin for Neovim, written in Lua. It is basically a drop-in replacement for tabline.vim but with a few differences.
With lazy.nvim
:
{
'crispgm/nvim-tabline',
dependencies = { 'nvim-tree/nvim-web-devicons' }, -- optional
config = true,
}
require('tabline').setup({opts})
require('tabline').setup({
show_index = true, -- show tab index
show_modify = true, -- show buffer modification indicator
show_icon = false, -- show file extension icon
fnamemodify = ':t', -- file name modifier string
-- can be a function to modify buffer name
modify_indicator = '[+]', -- modify indicator
no_name = 'No name', -- no name buffer name
brackets = { '[', ']' }, -- file name brackets surrounding
inactive_tab_max_length = 0 -- max length of inactive tab titles, 0 to ignore
})
" Only if there are at least two tabs (default)
vim.opt.showtabline = 1
" Always
vim.opt.showtabline = 2
" Never
vim.opt.showtabline = 0
Vim's tabpage commands are powerful enough, :help tabpage
for details.
If you need switch between tabs, here is a great tutorial.
The highlighting of the tab pages line follows vim settings. See :help setting-tabline
for details.
nvim-tabline is not exactly a Lua translation. There are some differences for configuration:
- Control whether to display tab number (
show_index
) and buffer modification indicator (show_modify
). - File extension icon with nvim-dev-icons.
- Customize modify indicator and no name buffer name.
- Close button (
g:tablineclosebutton
) is not supported.