Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here


lean & mean status/tabline for vim that's light as air

Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star half bd79095782ee4930099175e5ce7f4c89fa3ddabcd56fffcc7c74f6f2a2d46b27 (1 ratings)
Rated 4.5 out of 5
Subscribe to updates I use vim-airline

Statistics on vim-airline

Number of watchers on Github 10504
Number of open issues 33
Average time to close an issue about 22 hours
Main language VimL
Average time to merge a PR 1 day
Open pull requests 50+
Closed pull requests 38+
Last commit over 2 years ago
Repo Created about 7 years ago
Repo Last Updated over 2 years ago
Size 2.24 MB
Organization / Authorvim-airline
Latest Releasev0.9
Page Updated
Do you use vim-airline? Leave a review!
View open issues (33)
View vim-airline activity
View on github
Fresh, new opensource launches πŸš€πŸš€πŸš€
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating vim-airline for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

vim-airline Build Status

Lean & mean status/tabline for vim that's light as air.


When the plugin is correctly loaded, Vim will draw a nice statusline at the bottom of each window.

That line consists of several sections, each one displaying some piece of information. By default (without configuration) this line will look like this:

|~                                                                            |
|~                                                                            |
|~                     VIM - Vi IMproved                                      |
|~                                                                            |
|~                       version 8.0                                          |
|~                    by Bram Moolenaar et al.                                |
|~           Vim is open source and freely distributable                      |
|~                                                                            |
|~           type :h :q<Enter>          to exit                               |
|~           type :help<Enter> or <F1>  for on-line help                      |
|~           type :help version8<Enter> for version info                      |
|~                                                                            |
|~                                                                            |
| A | B |                     C                            X | Y | Z |  [...] |

The statusline is the colored line at the bottom, which contains the sections (possibly in different colors):

section meaning (example)
A displays the mode + additional flags like crypt/spell/paste (INSERT)
B VCS information (branch, hunk summary) (master)
C filename + read-only flag (~/.vim/vimrc RO)
X filetype (vim)
Y file encodingfileformat
Z current position in the file
[...] additional sections (warning/errors/statistics) from external plugins (e.g. YCM, syntastic, ...)

The information in Section Z looks like this:

10% 10/100 ln : 20

This means:

10%     - 10 percent down the top of the file
 10    - current line 10
/100 ln - of 100 lines
: 20    - current column 20

For a better look, those sections can be colored differently, depending on various conditions (e.g. the mode or whether the current file is 'modified')


Straightforward customization

If you don't like the defaults, you can replace all sections with standard statusline syntax. Give your statusline that you've built over the years a face lift.



Themes have moved to another repository as of this commit.

Install the themes as you would this plugin (Vundle example):

Plugin 'vim-airline/vim-airline'
Plugin 'vim-airline/vim-airline-themes'

See https://github.com/vim-airline/vim-airline-themes for more.

Automatic truncation

Sections and parts within sections can be configured to automatically hide when the window size shrinks.


Smarter tab line

Automatically displays all buffers when there's only one tab open.


This is disabled by default; add the following to your vimrc to enable the extension:

let g:airline#extensions#tabline#enabled = 1

Separators can be configured independently for the tabline, so here is how you can define straight tabs:

let g:airline#extensions#tabline#left_sep = ' '
let g:airline#extensions#tabline#left_alt_sep = '|'

In addition, you can also choose which path formatter airline uses. This affects how file paths are displayed in each individual tab as well as the current buffer indicator in the upper right. To do so, set the formatter field with:

let g:airline#extensions#tabline#formatter = 'default'

Here is a complete list of formatters with screenshots:









Seamless integration

vim-airline integrates with a variety of plugins out of the box. These extensions will be lazily loaded if and only if you have the other plugins installed (and of course you can turn them off).













hunks (vim-gitgutter & vim-signify)

















vim-airline also supplies some supplementary stand-alone extensions. In addition to the tabline extension mentioned earlier, there is also:



Configurable and extensible

Fine-tuned configuration

Every section is composed of parts, and you can reorder and reconfigure them at will.


Sections can contain accents, which allows for very granular control of visuals (see configuration here).


Extensible pipeline

Completely transform the statusline to your liking. Build out the statusline as you see fit by extracting colors from the current colorscheme's highlight groups.



There's already powerline, why yet another statusline?

  • 100% vimscript; no python needed.

What about vim-powerline?

  • vim-powerline has been deprecated in favor of the newer, unifying powerline, which is under active development; the new version is written in python at the core and exposes various bindings such that it can style statuslines not only in vim, but also tmux, bash, zsh, and others.

Where did the name come from?

I wrote the initial version on an airplane, and since it's light as air it turned out to be a good name. Thanks for flying vim!


This plugin follows the standard runtime path structure, and as such it can be installed with a variety of plugin managers:

Plugin Manager Install with...
Pathogen git clone https://github.com/vim-airline/vim-airline ~/.vim/bundle/vim-airline
Remember to run :Helptags to generate help tags
NeoBundle NeoBundle 'vim-airline/vim-airline'
Vundle Plugin 'vim-airline/vim-airline'
Plug Plug 'vim-airline/vim-airline'
VAM call vam#ActivateAddons([ 'vim-airline' ])
Dein call dein#add('vim-airline/vim-airline')
minpac call minpac#add('vim-airline/vim-airline')
pack feature (native Vim 8 package feature) git clone https://github.com/vim-airline/vim-airline ~/.vim/pack/dist/start/vim-airline
Remember to run :helptags to generate help tags
manual copy all of the files into your ~/.vim directory


:help airline

Integrating with powerline fonts

For the nice looking powerline symbols to appear, you will need to install a patched font. Instructions can be found in the official powerline documentation. Prepatched fonts can be found in the powerline-fonts repository.

Finally, you can add the convenience variable let g:airline_powerline_fonts = 1 to your vimrc which will automatically populate the g:airline_symbols dictionary with the powerline symbols.


Solutions to common problems can be found in the Wiki.


Whoa! Everything got slow all of a sudden...

vim-airline strives to make it easy to use out of the box, which means that by default it will look for all compatible plugins that you have installed and enable the relevant extension.

Many optimizations have been made such that the majority of users will not see any performance degradation, but it can still happen. For example, users who routinely open very large files may want to disable the tagbar extension, as it can be very expensive to scan for the name of the current function.

The minivimrc project has some helper mappings to troubleshoot performance related issues.

If you don't want all the bells and whistles enabled by default, you can define a value for g:airline_extensions. When this variable is defined, only the extensions listed will be loaded; an empty array would effectively disable all extensions (e.g. :let g:airline_extensions = []).

Also, you can enable caching of the various syntax highlighting groups. This will try to prevent some of the more expensive :hi calls in Vim, which seem to be expensive in the Vim core at the expense of possibly not being hunderet percent correct all the times (especially if you often change highlighting groups yourself using :hi commands). To set this up do :let g:airline_highlighting_cache = 1. A :AirlineRefresh will however clear the cache.

In addition you might want to check out the dark_minimal theme, which does not change highlighting groups once they are defined. Also please check the FAQ for more information on how to diagnose and fix the problem.


A full list of screenshots for various themes can be found in the Wiki.


The project is currently being maintained by Bailey Ling, Christian Brabandt, and Mike Hartington.

If you are interested in becoming a maintainer (we always welcome more maintainers), please go here.


MIT License. Copyright (c) 2013-2017 Bailey Ling & Contributors.

vim-airline open issues Ask a question     (View All Issues)
  • over 3 years Advice to shorten statusline
  • over 3 years g:airline_powerline_fonts=1 not working on Windows
  • almost 4 years Allow to have different tabline color for visible/invisible modified buffer
  • almost 4 years clarify in documentation
  • almost 4 years taskwarrior plugin (needs dev help)
  • almost 4 years Broken powerline glyph in an inactive tagbar window
  • almost 4 years Use alternate separator on inactive window statuslines
  • almost 4 years Missing theme support for modified, hidden tabs in tabline?
  • almost 4 years Multiple Files confuses buffer list
  • almost 4 years Making text bold
  • about 4 years Custom section definitions failing to load for extension-based parts
  • about 4 years When use unite and airline together.there is a issue.
  • over 4 years Q: Change color of ycm warning part
  • over 4 years If Tagbar is opend, buffer line doesn't update after I open a new buffer.
  • about 5 years More customizability for inactive windows
  • about 5 years Section Truncation Enhancement
  • over 5 years Inconsistent status for non-edited window
  • over 5 years Blinking omnicompletion menu when tabline enabled
  • over 5 years Truncate section contents
  • almost 6 years Want to use tabline only when there are no tabs
  • about 6 years Customize tabline appearance
  • almost 7 years add support for theme overridable separators
vim-airline open pull requests (View All Pulls)
  • Make clickable buffers (only Neovim)
  • Always display buffer list in tabline
  • Improve loading and allow accent change/removal
  • more padding options
  • Some color changes in solarized theme due to bad readability.
  • For eclim, if there are many projects(:ProjectsTree), show all project names.
  • Add null accent, to allow accents to be removed
  • extensions#whitespace: fix false positive for check_mix_indent_file() for JS file
  • [RFC] Add g:airline_extensions_add setting
  • Make middle clickable buffers (only Neovim)
  • Make c_like_langs variable customisable in VIMRC
  • add total line next to line number
  • Do not draw separators for empty sections
  • tabline#formatters#unique_tail_improved: handle fugitive
  • Cache eclim errorlist
  • Reset w:airline_active on TabEnter
  • Tabline performance: only pass in visible buffers to formatters
  • Hunks not show in airline with signify and option g:airline#extension…
  • Map keys in ctrlspace mode
  • Cache hunk values, shorten for small windows
  • don't add a second separator if not needed
  • clarifying documentation
  • themes: allow to customize separators on inactive windows
  • Update parts.vim
  • fix: tabline doesn't update when close buffer(one except the current)
  • Make it compatible with non UTF-8 encoding
  • Add support for ALE, the Async Linting Engine
  • Add support for flattened and NeoSolarized themes
  • Use async feature of Vim 8
  • Display not exists symbol correctly in Git repos
  • Add mq status for hg repositories
  • clarify exactly in which order specify customization options
  • Tabline extension: Option to allow middle click close to preserve windows with clicked buffer open
  • add vim-bufmru to the list of integrated plugins
  • Fixed bug where highlighting on inactive windows wouldn't refresh.
  • Add Worktrees support
  • Use getwininfo() for checking quickfix window
  • Support for test status on neoterm
  • Add vimtex support
  • Fix problems with AirlineSelect{Prev,Next}Tab
  • Improvements to wordcount formatting
  • Cursormode integrated as extension
  • Changing 'airline_tablabel' text and colors back to old style
  • tabline: fix tabline on :syn on
  • Fix white space in tabline when showing buffers
  • Redesign tabline visible buffers algorithm
  • Added a *vim-gutentags* extension
  • Make branch detection customizable
  • Changed buflist.vim algorithm
  • Redesign tabline visible buffers algorithm
vim-airline questions on Stackoverflow (View All Questions)
  • How to reduce height of vim-airline status/tabline
  • Vim Airline plugin dont work properly on Vim
  • Vim airline branch not showing
  • Why vim-airline is not showing symbols properly?
  • In vim airline, only show git branch, not changes to file
  • How to use vim airline or powerline on windows command promt?
  • Vim airline only works properly when I start a new terminal in an existing terminal
  • Powerline (tmuxline and vim-airline) not showing the right characters [iTerm2, Mac OS X]
  • unicode characters do not appear in terminal for vim airline
  • How can I display the function name in vim-airline?
  • Vim airline/status bar buffers of the same name
  • Indicate operator-pending mode in vim-airline
  • switching between tabs in vim with vim-airline
  • Change vim-airline colorscheme via vim-sunset plugin
  • strange blue spots in statusline (vim-airline)
  • How can I setup my vim-airline or vim-powerline
  • vim-airline: what is "! trailing[1]"
  • Vim-airline close buffer/quit vim
  • vim-airline blocky in console
  • Vim airline displaying issue
  • Vim + Airline + Linux sloppy exit
  • Using patched Powerline fonts for vim-airline
vim-airline list of languages used
vim-airline latest release notes
v0.9 v0.9
  • Changes
    • Look of default Airline Symbols has been improved #1397
    • Airline does now set laststatus=2 if needed
    • Syntastic extension now displays warnings and errors separately
    • Updates on Resize and SessionLoad events
    • Add maxlinenr symbol to airline_section_z
    • Add quickfix title to inactive windows
  • Improvements
    • Many performance improvements (using caching and async feature when possible)
    • Cache changes to highlighting groups if g:airline_highlighting_cache = 1 is set
    • Allow to skip empty sections by setting g:airline_skip_empty_sections variable
    • Make use of improved Vim Script API, if available (e.g. getwininfo())
    • Support for Vims terminal feature (very experimental since it hasn't been stabilized yet)
    • More configuration for the tabline extension (with clickable buffers for Neovim)
    • Works better on smaller window sizes
    • Make airline aware of git worktrees
    • Improvements to the fugitive extension #1603
    • Allows for configurable fileformat output if g:airline#parts#ffenc#skip_expected_string is set
    • Improvements to the documentation
  • New features
v0.8 v0.8
  • Changes
  • Improvements
    • Extensions
    • branch: support Git and Mercurial simultaneously, untracked files
    • whitespace: new mixed-indent rule
    • Windows support
    • Many bug fixes
    • Support for Neovim
  • New features
v0.7 v0.7
  • New features
    • tabline
    • new highlight for unmodified inactive
    • can enable bindings for predictable number-based tab numbers
    • unique_tail and unique_tail_improved formatters
    • whitespace extension: can handle some common mixed indent rules
    • extensions: capslock, netrw, nrrwrgn, promptline, quickfix, tmuxline, windowswap
    • themes: durant, hybrid, kalisi, kolor, raven, silver
  • Improvements
    • countless refinements and bug fixes
More projects by vim-airline View all
Other projects in VimL