vim-airline/README.md

5.4 KiB

vim-airline

Lean & mean statusline for vim that's light as air.

img

Rationale

There's already powerline, why yet another statusline?

  • it's 100% vimscript; no python needed.
  • it's small. i want the core plugin to be less than 200 lines as a rule (specifically adhering to the open/closed principle).
  • despite the small size, it is fully featured and already integrates with: vim-bufferline, fugitive, unite, ctrlp, minibufexpl, gundo, undotree, nerdtree, tagbar and syntastic.
  • it looks good with regular fonts, and provides configuration points so you can use unicode or powerline symbols.
  • it's fast to load, taking roughly 1ms. by comparison, powerline needs 60ms on the same machine.
  • it's fully customizable; if you know a little statusline syntax you can tweak it to your needs.
  • it's trivial to write colorschemes; for a minimal theme you need to edit 9 lines of colors. (please send pull requests if you create new themes!)

What about old powerline?

  • the old version still works well, but since it's deprecated new features won't get added
  • it uses different font codes, which makes it incompatible with other powerline bindings in the same terminal (e.g. bash, zsh, tmux, etc.)

Why's it called airline?

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!

Installation

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

  • pathogen
  • git clone https://github.com/bling/vim-airline ~/.vim/bundle/vim-airline
  • neobundle
  • NeoBundle 'bling/vim-airline'
  • vundle
  • Bundle 'bling/vim-airline'
  • manual
  • copy all of the files into your ~/.vim directory

Configuration

:help airline

FAQ/Troubleshooting

  • the powerline font symbols are not showing up
  • enable them by adding let g:airline_powerline_fonts=1 to your vimrc.
  • the older deprecated vim-powerline uses different font codes compared to the newer powerline. you can grab prepatched fonts at powerline-fonts.
  • there is a pause when leaving insert mode
  • you need to set ttimeoutlen to a low number; 50 is recommended
  • you don't see any colors
  • all of the themes use a 256 terminal color palette. it's likely that the value of t_Co is misconfigured. please see this article on how to configure your terminal. pull requests for 8 and 16 color terminals are welcome.
  • you get the error Unknown function: fugitive#head
  • you are probably using version 1.2, which is very old...download v2 from the project page.
  • airline doesn't appear until i create a new split
  • add set laststatus=2 to your vimrc
  • bufferline is printing to the statusline as well as the command bar
  • you can disable automatic echoing by adding let g:bufferline_echo = 0 to your vimrc
  • the statusline wraps
  • you are probably using iTerm with double-width characters enabled. either disable this, or set ambiwidth=double in your vimrc.
  • how do i get rid of the default mode indicator?
  • add set noshowmode to your vimrc

Bugs

If you encounter a bug, please do the following:

  • reproduce it with this minivimrc repository to rule out any configuration conflicts.
  • specify your version and patch level, as well as operating system (found with :version).
  • a link to a gist or your vimrc where it can be reproduced.

Screenshots

dark theme with a regular font

img

dark theme with powerline symbols

img

simple theme

img

light theme

img

badwolf theme with bufferline integration

img

Contributions

Contributions and pull requests are welcome. Please take note of the following guidelines:

  • adhere to the existing style as much as possible; notably, 2 space indents and long-form keywords.
  • keep the history clean! squash your branches before you submit a pull request. pull --rebase is your friend.
  • this plugin got a lot more popular than i initially expected, if you make changes to the core, please test on as many versions of vim as possible.

License

:help license