*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.

==============================================================================
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
<http://vim.wikia.com/wiki/256_colors_in_vim>.  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:
<https://github.com/bling/vim-airline/wiki/FAQ>

==============================================================================
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:
