- Notifications
You must be signed in to change notification settings - Fork0
lean & mean status/tabline for vim that's light as air
License
ReubenM/vim-airline
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Lean & mean status/tabline for vim that's light as air.
When the plugin is correctly loaded, there will be a nice statusline at thebottom of each vim window.
That line consists of several sections, each one displaying some piece ofinformation. By default (without configuration) this line will look like this:
+-----------------------------------------------------------------------------+|~ ||~ ||~ VIM - Vi IMproved ||~ ||~ version 8.2 ||~ 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 | Environment status (VCS information - branch, hunk summary (master),battery level) |
C | filename + read-only flag (~/.vim/vimrc RO) |
X | filetype (vim) |
Y | file encoding[fileformat] (utf-8[unix]) |
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')
- Tiny core written with extensibility in mind (open/closed principle).
- Integrates with a variety of plugins, including:vim-bufferline,fugitive,unite,ctrlp,minibufexpl,gundo,undotree,nerdtree,tagbar,vim-gitgutter,vim-signify,quickfixsigns,syntastic,eclim,lawrencium,virtualenv,tmuxline,taboo.vim,ctrlspace,vim-bufmru,vimagit,denite,vim.battery and more.
- Looks good with regular fonts and provides configuration points so you can use unicode or powerline symbols.
- Optimized for speed - loads in under a millisecond.
- Extensive suite of themes for popular color schemes includingsolarized (dark and light),tomorrow (all variants),base16 (all variants),molokai,jellybeans and others.Note these are now external to this plugin. More details can be found in thethemes repository.
- Supports 7.2 as the minimum Vim version.
- The master branch tries to be as stable as possible, and new features are merged in only after they have gone through afull regression test.
- Unit testing suite.
If you don't like the defaults, you can replace all sections with standardstatusline
syntax. Give your statusline that you've built over the years a face lift.
Themes have moved toanother repository as ofthis commit.
Install the themes as you would this plugin (Vundle example):
Plugin'vim-airline/vim-airline'Plugin'vim-airline/vim-airline-themes'
Seevim-airline-themes for more.
Sections and parts within sections can be configured to automatically hide when the window size shrinks.
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 aredisplayed in each individual tab as well as the current buffer indicator in the upper right.To do so, set theformatter
field with:
let g:airline#extensions#tabline#formatter = 'default'
Here is a complete list of formatters with screenshots:
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 &coc-git)
vim-airline also supplies some supplementary stand-alone extensions. In addition to the tabline extension mentioned earlier, there is also:
The statusline can alternatively be drawn on top, making room for other plugins to use the statusline:The example shows a custom statusline setting, that imitates Vims default statusline, while allowingto call custom functions. Use:let g:airline_statusline_ontop=1
to enable it.
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 configurationhere).
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 alreadypowerline, why yet another statusline?
- 100% vimscript; no python needed.
What aboutvim-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.
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 ~/.vim/pack/dist/start/vim-airline/doc to generate help tags |
manual | copy all of the files into your~/.vim directory |
:help airline
For the nice looking powerline symbols to appear, you will need to install a patched font. Instructions can be found in the official powerlinedocumentation. Prepatched fonts can be found in thepowerline-fonts repository.
Finally, you can add the convenience variablelet g:airline_powerline_fonts = 1
to your vimrc which will automatically populate theg:airline_symbols
dictionary with the powerline symbols.
Solutions to common problems can be found in theWiki.
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 thetagbar
extension, as it can be very expensive to scan for the name of the current function.
Theminivimrc 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 forg: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 one hundred percent correct all the time (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 thedark_minimal theme, which does not change highlighting groups once they are defined. Also please check theFAQ for more information on how to diagnose and fix the problem.
A full list of screenshots for various themes can be found in theWiki.
The project is currently being maintained byChristian Brabandt andBailey Ling.
If you are interested in becoming a maintainer (we always welcome more maintainers), pleasego here.
MIT License. Copyright (c) 2013-2021 Bailey Ling & Contributors.
About
lean & mean status/tabline for vim that's light as air
Resources
License
Stars
Watchers
Forks
Packages0
Languages
- Vim Script99.9%
- Ruby0.1%