Looking for an airline replacement

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

catlover,

After hours of trying out different plugins the closest I could find is the lualine & tabby combination:

https://sh.itjust.works/pictrs/image/23a32c41-c0cc-4a19-b2ce-523aaf733f7f.png

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


<span style="color:#323232;">local lualine_theme = require("highlight").lualine_theme
</span><span style="color:#323232;">require("lualine").setup({
</span><span style="color:#323232;">	options = {
</span><span style="color:#323232;">		icons_enabled = true,
</span><span style="color:#323232;">		theme = lualine_theme,
</span><span style="color:#323232;">		component_separators = { left = "", right = "" },
</span><span style="color:#323232;">		section_separators = { left = "", right = "" },
</span><span style="color:#323232;">		disabled_filetypes = {
</span><span style="color:#323232;">			statusline = {},
</span><span style="color:#323232;">			winbar = {},
</span><span style="color:#323232;">		},
</span><span style="color:#323232;">		ignore_focus = {},
</span><span style="color:#323232;">		globalstatus = true,
</span><span style="color:#323232;">		refresh = {
</span><span style="color:#323232;">			statusline = 1000,
</span><span style="color:#323232;">			tabline = 1000,
</span><span style="color:#323232;">			winbar = 1000,
</span><span style="color:#323232;">		},
</span><span style="color:#323232;">	},
</span><span style="color:#323232;">	sections = {
</span><span style="color:#323232;">		lualine_a = { "branch" },
</span><span style="color:#323232;">		lualine_b = { empty_section },
</span><span style="color:#323232;">		lualine_c = {},
</span><span style="color:#323232;">		lualine_x = {},
</span><span style="color:#323232;">		lualine_y = { { "diagnostics", sections = { "error", "warn" } } },
</span><span style="color:#323232;">		lualine_z = { "location" },
</span><span style="color:#323232;">	},
</span><span style="color:#323232;">	inactive_sections = {},
</span><span style="color:#323232;">	tabline = {},
</span><span style="color:#323232;">	winbar = {},
</span><span style="color:#323232;">	inactive_winbar = {},
</span><span style="color:#323232;">	extensions = { "fugitive", "nvim-tree" },
</span><span style="color:#323232;">})
</span><span style="color:#323232;">
</span><span style="color:#323232;">local theme = {
</span><span style="color:#323232;">	fill = "TabLineFill",
</span><span style="color:#323232;">	-- Also you can do this: fill = { fg='#f2e9de', bg='#907aa9', style='italic' }
</span><span style="color:#323232;">	head = "TabLine",
</span><span style="color:#323232;">	current = "TabLineSel",
</span><span style="color:#323232;">	tab = "TabLine",
</span><span style="color:#323232;">	win = "TabLine",
</span><span style="color:#323232;">	tail = "TabLine",
</span><span style="color:#323232;">}
</span><span style="color:#323232;">
</span><span style="color:#323232;">vim.o.showtabline = 2
</span><span style="color:#323232;">local tabby_theme = require("highlight").tabby_theme
</span><span style="color:#323232;">require("tabby.tabline").set(function(line)
</span><span style="color:#323232;">	return {
</span><span style="color:#323232;">		line.tabs().foreach(function(tab)
</span><span style="color:#323232;">			local hl = tab.is_current() and tabby_theme.current or tabby_theme.tab
</span><span style="color:#323232;">
</span><span style="color:#323232;">			return {
</span><span style="color:#323232;">				line.sep("", hl, tabby_theme.fill),
</span><span style="color:#323232;">				tab.number(),
</span><span style="color:#323232;">				tab.name(),
</span><span style="color:#323232;">				line.sep("", hl, tabby_theme.fill),
</span><span style="color:#323232;">				hl = hl,
</span><span style="color:#323232;">				margin = " ",
</span><span style="color:#323232;">			}
</span><span style="color:#323232;">		end),
</span><span style="color:#323232;">		line.spacer(),
</span><span style="color:#323232;">		line.wins_in_tab(line.api.get_current_tab()).foreach(function(win)
</span><span style="color:#323232;">			local hl = win.is_current() and tabby_theme.current or tabby_theme.tab
</span><span style="color:#323232;">
</span><span style="color:#323232;">			return {
</span><span style="color:#323232;">				line.sep("", hl, tabby_theme.fill),
</span><span style="color:#323232;">				win.buf_name(),
</span><span style="color:#323232;">				line.sep("", hl, tabby_theme.fill),
</span><span style="color:#323232;">				hl = hl,
</span><span style="color:#323232;">				margin = " ",
</span><span style="color:#323232;">			}
</span><span style="color:#323232;">		end),
</span><span style="color:#323232;">		hl = tabby_theme.fill,
</span><span style="color:#323232;">	}
</span><span style="color:#323232;">end)
</span>
  • All
  • Subscribed
  • Moderated
  • Favorites
  • neovim@programming.dev
  • magazineikmin
  • rosin
  • mdbf
  • Youngstown
  • love
  • slotface
  • ethstaker
  • ngwrru68w68
  • kavyap
  • khanakhh
  • thenastyranch
  • DreamBathrooms
  • GTA5RPClips
  • osvaldo12
  • megavids
  • tacticalgear
  • modclub
  • InstantRegret
  • normalnudes
  • Durango
  • everett
  • cisconetworking
  • cubers
  • Leos
  • provamag3
  • tester
  • anitta
  • JUstTest
  • All magazines