*airline.txt* Lean and mean statusline that's light as air ============================================================================== INTRODUCTION *airline* vim-airline is a fast and lightweight alternative to powerline, written in 100% vimscript with no outside dependencies. ============================================================================== FEATURES *airline-features* * tiny core written with extensibility in mind. * integrates with many popular plugins. * looks good with regular fonts, and provides configuration points so you can use unicode or powerline symbols. * optimized for speed; it loads in under a millisecond. * fully customizable; if you know a little |statusline| syntax you can tweak it to your needs. * trivial to write colorschemes; for a minimal theme you need to edit 9 lines of colors. (please send pull requests) ============================================================================== NAME *airline-name* Where did the name come from? I wrote this on an airplane, and since it's light as air it turned out to be a good name :-) ============================================================================== CONFIGURATION *airline-configuration* There are a couple configuration values available (shown with their default values): * the separator used on the left side > let g:airline_left_sep='>' < * the separator used on the right side > let g:airline_right_sep='<' < * enable/disable fugitive/lawrencium integration > let g:airline_enable_branch=1 < * enable/disable syntastic integration > let g:airline_enable_syntastic=1 < * enable/disable tagbar integration > let g:airline_enable_tagbar=1 < * enable modified detection > let g:airline_detect_modified=1 < * enable paste detection > let g:airline_detect_paste=1 < * enable iminsert detection > let g:airline_detect_iminsert=1 < * enable whitespace detection > let g:airline_detect_whitespace=0 "disabled let g:airline_detect_whitespace=1 "icon and message (default) let g:airline_detect_whitespace=2 "icon only < * change the default theme > let g:airline_theme='dark' < * enable/disable usage of patched powerline font symbols > let g:airline_powerline_fonts=0 < * define the set of text to display for each mode. > let g:airline_mode_map = {} " see source for current list < * define the set of filename match queries which excludes a window from having its statusline modified > let g:airline_exclude_filenames = [] " see source for current list < * define the set of filetypes which are excluded from having its window statusline modified > let g:airline_exclude_filetypes = [] " see source for current list < * defines whether the preview window should be excluded from have its window statusline modified (may help with plugins which use the preview window heavily) > let g:airline_exclude_preview = 0 < ============================================================================== COMMANDS *airline-commands* :AirlineTheme {theme-name} *:AirlineTheme* Displays or changes the current theme. :AirlineToggleWhitespace *:AirlineToggleWhitespace* Toggles whitespace detection. ============================================================================== CUSTOMIZATION *airline-customization* The following are some unicode symbols for customizing the left/right separators, as well as the powerline font glyths. > " unicode symbols let g:airline_left_sep = '»' let g:airline_left_sep = '▶' let g:airline_right_sep = '«' let g:airline_right_sep = '◀' let g:airline_linecolumn_prefix = '␊ ' let g:airline_linecolumn_prefix = '␤ ' let g:airline_linecolumn_prefix = '¶ ' let g:airline_branch_prefix = '⎇ ' let g:airline_paste_symbol = 'ρ' let g:airline_paste_symbol = 'Þ' let g:airline_paste_symbol = '∥' let g:airline_whitespace_symbol = 'Ξ' " powerline symbols let g:airline_left_sep = '' let g:airline_left_alt_sep = '' let g:airline_right_sep = '' let g:airline_right_alt_sep = '' let g:airline_branch_prefix = ' ' let g:airline_readonly_symbol = '' let g:airline_linecolumn_prefix = ' ' " old vim-powerline symbols let g:airline_left_sep = '⮀' let g:airline_left_alt_sep = '⮁' let g:airline_right_sep = '⮂' let g:airline_right_alt_sep = '⮃' let g:airline_branch_prefix = '⭠' let g:airline_readonly_symbol = '⭤' let g:airline_linecolumn_prefix = '⭡' < For more intricate customizations, you can replace the predefined sections with the usual statusline syntax. > " here are the the default values let g:airline_section_a (the mode/paste indicator) let g:airline_section_b (the fugitive/lawrencium branch indicator) let g:airline_section_c (bufferline or filename) let g:airline_section_gutter let g:airline_section_x (tagbar, filetype) let g:airline_section_y (fileencoding, fileformat) let g:airline_section_z (percentage, line number, column number) let g:airline_section_warning (syntastic, whitespace) " here is an example of how you could replace the branch indicator with " the current working directory, followed by the filename. let g:airline_section_b = '%{getcwd()}' let g:airline_section_c = '%t' < ============================================================================== FUNCREFS *airline-funcrefs* vim-airline internally uses funcrefs to integrate with third party plugins, and you can tap into this functionality to extend it for you needs. *g:airline_statusline_funcrefs* The g:airline_statusline_funcrefs variable is an array of funcrefs that get invoked before the statusline gets overwritten for each window. The following is an example of how you can extend vim-airline to support a new plugin. > function! MyPlugin() if &filetype == 'MyPluginFileType' let w:airline_section_a = 'MyPlugin' let w:airline_section_b = '%f' let w:airline_section_c = '%{MyPlugin#function()}' let g:airline_variable_referenced_in_statusline = 'foo' endif endfunction call add(g:airline_statusline_funcrefs, function('MyPlugin')) < *g:airline_exclude_funcrefs* The g:airline_exclude_funcrefs variable is an array that's returns 1 or 0 to determine whether that particular window should be excluded from having its statusline modified. Here is an example: > function! ExcludeFoo() return &filetype == 'FooType' endfunction call add(g:airline_exclude_funcrefs, function('ExcludeFoo')) < ============================================================================== WRITING THEMES *airline-themes* Themes are written "close to the metal" -- you will need to know some basic VimL syntax to write a theme, but if you've written in any programming language before it will be easy to pick up. The |dark.vim| theme fully documents this procedure and will guide you through the process. The |jellybeans.vim| theme is another example of how to write a theme, but instead of manually declaring colors, it extracts the values from highlight groups. ============================================================================== TROUBLESHOOTING *airline-troubleshooting* Q. There are no colors. A. You need to set up your terminal correctly. For more details, see . Alternatively, if you want to bypass the automatic detection of terminal colors, you can force Vim into 256 colors with this: > set t_Co=256 < Q. The statusline does not appear until I create a split. A. This is the default setting of |laststatus|. If you want it to appear all the time, add the following to your vimrc: > set laststatus=2 < Q. Powerline symbols are not showing up. A. First, you must install patched powerline fonts. Second, you must enable unicode in vim. > set encoding=utf-8 < Q. There is a pause when leaving insert mode. A. Add the following to your vimrc. > set ttimeoutlen=50 < Solutions to other common problems can be found in the Wiki: ============================================================================== CONTRIBUTIONS *airline-contributions* Contributions and pull requests are welcome. ============================================================================== LICENSE *airline-license* MIT license. Copyright © 2013 Bailey Ling. vim:tw=78:ts=8:ft=help:norl: