vimtricks.wiki Concise Vim tricks, one at a time.

How do I display a single shared status line at the bottom of Neovim instead of one per split window?

Answer

:set laststatus=3

Explanation

Neovim 0.7 introduced laststatus=3, which creates a global statusline shared across all windows. Instead of each split showing its own statusline, there is exactly one statusline at the very bottom of the editor. This saves a line of vertical space per split and eliminates the visual noise of multiple repeated status bars when working with many splits.

How it works

  • :set laststatus=3 — global statusline (Neovim 0.7+)
  • :set laststatus=2 — per-window statusline, always shown (classic default)
  • :set laststatus=1 — statusline only when there are two or more windows
  • :set laststatus=0 — never show a statusline

Example

Without the global statusline, opening three horizontal splits shows three separate statuslines stacked vertically, consuming three rows. With :set laststatus=3, only one statusline appears regardless of how many splits are open.

To apply permanently in your Neovim config:

" init.vim
set laststatus=3
-- init.lua
vim.opt.laststatus = 3

Tips

  • The inactive windows in a laststatus=3 setup will show the window separator without their own statusline
  • Pair with :set winbar=%f to show the filename in a per-window title bar, since there is no longer a per-window statusline
  • This setting only works in Neovim 0.7+; Vim does not support value 3
  • Status line plugins like lualine.nvim and lightline.vim also support laststatus=3 natively

Next

How do I incrementally expand or shrink a selection based on syntax tree nodes using nvim-treesitter?