Hi! I recently decided to switch from airline, but can’t find a status / tab line plugin that works just like I want it to. Lualine is the closest I could get, but the following features from tabline is really missing from me.
I couldn’t get the buffer component to only show those buffers that are open on the current tab, and in the visual order that my splits are. Also I can’t get it to hide hidden buffers, after opening and closing a few terminals it gets polluted with a tons of unnecessary tabs
The closest I could get is with “tiagovla/scope.nvim”, but that does not make it respect the order of my splits, messes with sessions and doesn’t solve the problem with the hidden buffers
Is there a tabline extension that is simple and fast, and can do what I described? Thanks in advance
After hours of trying out different plugins the closest I could find is the lualine & tabby combination:
About to test it during work, at first look it looks like it has everything I need, only shows current buffers in tab, and in correct order
local lualine_theme = require("highlight").lualine_theme require("lualine").setup({ options = { icons_enabled = true, theme = lualine_theme, component_separators = { left = "", right = "" }, section_separators = { left = "", right = "" }, disabled_filetypes = { statusline = {}, winbar = {}, }, ignore_focus = {}, globalstatus = true, refresh = { statusline = 1000, tabline = 1000, winbar = 1000, }, }, sections = { lualine_a = { "branch" }, lualine_b = { empty_section }, lualine_c = {}, lualine_x = {}, lualine_y = { { "diagnostics", sections = { "error", "warn" } } }, lualine_z = { "location" }, }, inactive_sections = {}, tabline = {}, winbar = {}, inactive_winbar = {}, extensions = { "fugitive", "nvim-tree" }, }) local theme = { fill = "TabLineFill", -- Also you can do this: fill = { fg='#f2e9de', bg='#907aa9', style='italic' } head = "TabLine", current = "TabLineSel", tab = "TabLine", win = "TabLine", tail = "TabLine", } vim.o.showtabline = 2 local tabby_theme = require("highlight").tabby_theme require("tabby.tabline").set(function(line) return { line.tabs().foreach(function(tab) local hl = tab.is_current() and tabby_theme.current or tabby_theme.tab return { line.sep("", hl, tabby_theme.fill), tab.number(), tab.name(), line.sep("", hl, tabby_theme.fill), hl = hl, margin = " ", } end), line.spacer(), line.wins_in_tab(line.api.get_current_tab()).foreach(function(win) local hl = win.is_current() and tabby_theme.current or tabby_theme.tab return { line.sep("", hl, tabby_theme.fill), win.buf_name(), line.sep("", hl, tabby_theme.fill), hl = hl, margin = " ", } end), hl = tabby_theme.fill, } end)