2013-07-02 07:49:40 +08:00
|
|
|
|
*airline.txt* Lean and mean statusline that's light as air
|
2013-08-11 07:22:42 +08:00
|
|
|
|
_ _ _ _ ~
|
|
|
|
|
__ _(_)_ __ ___ __ _(_)_ __| (_)_ __ ___ ~
|
|
|
|
|
\ \ / / | '_ ` _ \ _____ / _` | | '__| | | '_ \ / _ \ ~
|
|
|
|
|
\ V /| | | | | | |_____| (_| | | | | | | | | | __/ ~
|
|
|
|
|
\_/ |_|_| |_| |_| \__,_|_|_| |_|_|_| |_|\___| ~
|
|
|
|
|
~
|
2013-07-01 19:33:26 +08:00
|
|
|
|
==============================================================================
|
2013-07-15 22:45:47 +08:00
|
|
|
|
INTRODUCTION *airline*
|
2013-07-01 19:33:26 +08:00
|
|
|
|
|
2013-08-02 20:11:53 +08:00
|
|
|
|
vim-airline is a fast and lightweight alternative to powerline, written
|
|
|
|
|
in 100% vimscript with no outside dependencies.
|
2013-07-01 19:33:26 +08:00
|
|
|
|
|
2013-08-02 20:11:53 +08:00
|
|
|
|
==============================================================================
|
|
|
|
|
FEATURES *airline-features*
|
|
|
|
|
|
|
|
|
|
* tiny core written with extensibility in mind.
|
|
|
|
|
* integrates with many popular plugins.
|
2013-08-01 04:07:14 +08:00
|
|
|
|
* looks good with regular fonts, and provides configuration points so you
|
2013-07-08 11:12:05 +08:00
|
|
|
|
can use unicode or powerline symbols.
|
2013-08-05 03:10:44 +08:00
|
|
|
|
* optimized for speed; it loads in under a millisecond.
|
2013-08-01 04:07:14 +08:00
|
|
|
|
* fully customizable; if you know a little |statusline| syntax you can
|
2013-07-08 11:12:05 +08:00
|
|
|
|
tweak it to your needs.
|
2013-08-11 07:22:42 +08:00
|
|
|
|
* extremely easy to write themes.
|
2013-07-01 19:33:26 +08:00
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
NAME *airline-name*
|
|
|
|
|
|
2013-07-23 05:23:41 +08:00
|
|
|
|
Where did the name come from?
|
2013-07-01 19:33:26 +08:00
|
|
|
|
|
2013-07-10 21:48:13 +08:00
|
|
|
|
I wrote this on an airplane, and since it's light as air it turned out to be a
|
2013-07-01 19:33:26 +08:00
|
|
|
|
good name :-)
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
2013-07-02 07:49:40 +08:00
|
|
|
|
CONFIGURATION *airline-configuration*
|
2013-07-01 19:33:26 +08:00
|
|
|
|
|
2013-07-10 21:48:13 +08:00
|
|
|
|
There are a couple configuration values available (shown with their default
|
2013-07-01 19:33:26 +08:00
|
|
|
|
values):
|
|
|
|
|
|
2013-07-02 11:48:50 +08:00
|
|
|
|
* the separator used on the left side
|
2013-07-01 19:33:26 +08:00
|
|
|
|
>
|
|
|
|
|
let g:airline_left_sep='>'
|
|
|
|
|
<
|
|
|
|
|
|
2013-07-02 11:48:50 +08:00
|
|
|
|
* the separator used on the right side
|
2013-07-01 19:33:26 +08:00
|
|
|
|
>
|
2013-07-02 17:49:06 +08:00
|
|
|
|
let g:airline_right_sep='<'
|
2013-07-01 19:33:26 +08:00
|
|
|
|
<
|
|
|
|
|
|
2013-07-18 13:56:29 +08:00
|
|
|
|
* enable/disable fugitive/lawrencium integration
|
2013-07-01 19:33:26 +08:00
|
|
|
|
>
|
2013-07-28 06:15:00 +08:00
|
|
|
|
let g:airline_enable_branch=1
|
2013-08-10 04:12:56 +08:00
|
|
|
|
let g:airline_branch_empty_message=''
|
2013-07-01 19:33:26 +08:00
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
* enable/disable syntastic integration
|
|
|
|
|
>
|
|
|
|
|
let g:airline_enable_syntastic=1
|
|
|
|
|
<
|
|
|
|
|
|
2013-08-01 04:07:14 +08:00
|
|
|
|
* enable/disable tagbar integration
|
|
|
|
|
>
|
|
|
|
|
let g:airline_enable_tagbar=1
|
2013-08-14 05:27:21 +08:00
|
|
|
|
|
|
|
|
|
* enable/disable csv integration
|
|
|
|
|
>
|
|
|
|
|
let g:airline_enable_csv=1
|
|
|
|
|
|
|
|
|
|
(this displays the column number in the csv file)
|
|
|
|
|
|
|
|
|
|
let g:airline_filetype_csv = 'Name'
|
|
|
|
|
|
|
|
|
|
(this displays the column name)
|
2013-08-01 04:07:14 +08:00
|
|
|
|
<
|
|
|
|
|
|
2013-07-23 05:23:41 +08:00
|
|
|
|
* enable modified detection
|
|
|
|
|
>
|
|
|
|
|
let g:airline_detect_modified=1
|
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
* enable paste detection
|
|
|
|
|
>
|
|
|
|
|
let g:airline_detect_paste=1
|
|
|
|
|
<
|
2013-08-05 03:10:44 +08:00
|
|
|
|
|
2013-07-24 19:35:31 +08:00
|
|
|
|
* enable iminsert detection
|
|
|
|
|
>
|
|
|
|
|
let g:airline_detect_iminsert=1
|
2013-08-05 03:10:44 +08:00
|
|
|
|
<
|
2013-07-23 05:23:41 +08:00
|
|
|
|
|
2013-08-07 08:48:53 +08:00
|
|
|
|
* 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
|
|
|
|
|
<
|
|
|
|
|
|
2013-08-11 22:30:02 +08:00
|
|
|
|
* determine whether inactive windows should have the left section collapsed to
|
|
|
|
|
only the filename of that buffer.
|
|
|
|
|
>
|
|
|
|
|
let g:airline_inactive_collapse=1
|
|
|
|
|
<
|
|
|
|
|
|
2013-07-16 04:19:26 +08:00
|
|
|
|
* change the default theme
|
2013-07-01 19:33:26 +08:00
|
|
|
|
>
|
2013-07-06 08:15:52 +08:00
|
|
|
|
let g:airline_theme='dark'
|
2013-07-01 19:33:26 +08:00
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
* enable/disable usage of patched powerline font symbols
|
|
|
|
|
>
|
|
|
|
|
let g:airline_powerline_fonts=0
|
|
|
|
|
<
|
|
|
|
|
|
2013-07-04 23:39:49 +08:00
|
|
|
|
* define the set of text to display for each mode.
|
|
|
|
|
>
|
|
|
|
|
let g:airline_mode_map = {} " see source for current list
|
|
|
|
|
<
|
|
|
|
|
|
2013-07-02 19:04:36 +08:00
|
|
|
|
* define the set of filename match queries which excludes a window from having
|
|
|
|
|
its statusline modified
|
2013-07-02 19:00:31 +08:00
|
|
|
|
>
|
2013-07-02 19:04:36 +08:00
|
|
|
|
let g:airline_exclude_filenames = [] " see source for current list
|
2013-07-02 19:00:31 +08:00
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
* define the set of filetypes which are excluded from having its window
|
|
|
|
|
statusline modified
|
|
|
|
|
>
|
|
|
|
|
let g:airline_exclude_filetypes = [] " see source for current list
|
|
|
|
|
<
|
2013-07-08 08:38:19 +08:00
|
|
|
|
|
2013-07-15 03:44:16 +08:00
|
|
|
|
* 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
|
|
|
|
|
<
|
|
|
|
|
|
2013-07-16 04:19:26 +08:00
|
|
|
|
==============================================================================
|
|
|
|
|
COMMANDS *airline-commands*
|
|
|
|
|
|
|
|
|
|
:AirlineTheme {theme-name} *:AirlineTheme*
|
|
|
|
|
Displays or changes the current theme.
|
|
|
|
|
|
2013-08-08 22:42:27 +08:00
|
|
|
|
:AirlineToggleWhitespace *:AirlineToggleWhitespace*
|
|
|
|
|
Toggles whitespace detection.
|
|
|
|
|
|
2013-08-15 05:56:55 +08:00
|
|
|
|
:AirlineToggle *:AirlineToggle*
|
|
|
|
|
Toggle this plugin (e.g. the nice statusline)
|
|
|
|
|
|
2013-07-02 07:49:40 +08:00
|
|
|
|
==============================================================================
|
|
|
|
|
CUSTOMIZATION *airline-customization*
|
|
|
|
|
|
2013-07-10 21:48:13 +08:00
|
|
|
|
The following are some unicode symbols for customizing the left/right
|
|
|
|
|
separators, as well as the powerline font glyths.
|
2013-07-02 07:49:40 +08:00
|
|
|
|
>
|
|
|
|
|
" 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 = ' '
|
2013-07-02 19:00:31 +08:00
|
|
|
|
let g:airline_linecolumn_prefix = '¶ '
|
2013-07-28 06:15:00 +08:00
|
|
|
|
let g:airline_branch_prefix = '⎇ '
|
2013-07-07 02:22:34 +08:00
|
|
|
|
let g:airline_paste_symbol = 'ρ'
|
2013-07-07 02:30:21 +08:00
|
|
|
|
let g:airline_paste_symbol = 'Þ'
|
|
|
|
|
let g:airline_paste_symbol = '∥'
|
2013-08-07 08:48:53 +08:00
|
|
|
|
let g:airline_whitespace_symbol = 'Ξ'
|
2013-07-02 07:49:40 +08:00
|
|
|
|
|
|
|
|
|
" powerline symbols
|
|
|
|
|
let g:airline_left_sep = ''
|
2013-07-08 08:38:19 +08:00
|
|
|
|
let g:airline_left_alt_sep = ''
|
2013-07-18 10:28:21 +08:00
|
|
|
|
let g:airline_right_sep = ''
|
|
|
|
|
let g:airline_right_alt_sep = ''
|
2013-07-28 06:15:00 +08:00
|
|
|
|
let g:airline_branch_prefix = ' '
|
2013-07-02 07:49:40 +08:00
|
|
|
|
let g:airline_readonly_symbol = ''
|
|
|
|
|
let g:airline_linecolumn_prefix = ' '
|
2013-07-18 03:09:18 +08:00
|
|
|
|
|
|
|
|
|
" 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 = '⮃'
|
2013-07-28 06:15:00 +08:00
|
|
|
|
let g:airline_branch_prefix = '⭠'
|
2013-07-18 03:09:18 +08:00
|
|
|
|
let g:airline_readonly_symbol = '⭤'
|
|
|
|
|
let g:airline_linecolumn_prefix = '⭡'
|
2013-07-02 07:49:40 +08:00
|
|
|
|
<
|
|
|
|
|
|
2013-07-10 21:48:13 +08:00
|
|
|
|
For more intricate customizations, you can replace the predefined sections
|
2013-08-14 04:43:04 +08:00
|
|
|
|
with the usual statusline syntax. Note that many of these settings can also be
|
|
|
|
|
controlled with |airline-configuration| variables, which is useful for
|
|
|
|
|
sections which by default host more than one extension.
|
2013-07-04 23:39:49 +08:00
|
|
|
|
>
|
2013-08-14 04:43:04 +08:00
|
|
|
|
variable names default contents
|
|
|
|
|
----------------------------------------------------------------------------
|
2013-08-07 08:48:53 +08:00
|
|
|
|
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)
|
2013-08-07 09:42:32 +08:00
|
|
|
|
let g:airline_section_gutter
|
2013-08-07 08:48:53 +08:00
|
|
|
|
let g:airline_section_x (tagbar, filetype)
|
|
|
|
|
let g:airline_section_y (fileencoding, fileformat)
|
|
|
|
|
let g:airline_section_z (percentage, line number, column number)
|
2013-08-07 09:42:32 +08:00
|
|
|
|
let g:airline_section_warning (syntastic, whitespace)
|
2013-07-08 11:12:05 +08:00
|
|
|
|
|
2013-07-28 06:15:00 +08:00
|
|
|
|
" here is an example of how you could replace the branch indicator with
|
2013-07-08 11:12:05 +08:00
|
|
|
|
" the current working directory, followed by the filename.
|
|
|
|
|
let g:airline_section_b = '%{getcwd()}'
|
|
|
|
|
let g:airline_section_c = '%t'
|
2013-07-04 23:39:49 +08:00
|
|
|
|
<
|
|
|
|
|
|
2013-08-03 23:14:02 +08:00
|
|
|
|
==============================================================================
|
|
|
|
|
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.
|
2013-07-10 21:48:13 +08:00
|
|
|
|
>
|
|
|
|
|
function! MyPlugin()
|
|
|
|
|
if &filetype == 'MyPluginFileType'
|
|
|
|
|
let w:airline_section_a = 'MyPlugin'
|
|
|
|
|
let w:airline_section_b = '%f'
|
|
|
|
|
let w:airline_section_c = '%{MyPlugin#function()}'
|
2013-08-03 23:14:02 +08:00
|
|
|
|
let g:airline_variable_referenced_in_statusline = 'foo'
|
2013-07-10 21:48:13 +08:00
|
|
|
|
endif
|
|
|
|
|
endfunction
|
2013-08-03 23:14:02 +08:00
|
|
|
|
call add(g:airline_statusline_funcrefs, function('MyPlugin'))
|
2013-07-10 21:48:13 +08:00
|
|
|
|
<
|
2013-08-03 23:14:02 +08:00
|
|
|
|
*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:
|
2013-07-26 06:48:15 +08:00
|
|
|
|
>
|
|
|
|
|
function! ExcludeFoo()
|
|
|
|
|
return &filetype == 'FooType'
|
|
|
|
|
endfunction
|
|
|
|
|
call add(g:airline_exclude_funcrefs, function('ExcludeFoo'))
|
|
|
|
|
<
|
|
|
|
|
|
2013-07-24 11:00:23 +08:00
|
|
|
|
==============================================================================
|
|
|
|
|
WRITING THEMES *airline-themes*
|
|
|
|
|
|
|
|
|
|
Themes are written "close to the metal" -- you will need to know some basic
|
2013-08-04 09:25:35 +08:00
|
|
|
|
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.
|
2013-07-24 11:00:23 +08:00
|
|
|
|
|
2013-07-20 21:24:15 +08:00
|
|
|
|
==============================================================================
|
|
|
|
|
TROUBLESHOOTING *airline-troubleshooting*
|
|
|
|
|
|
2013-08-08 12:23:43 +08:00
|
|
|
|
Q. There are no colors.
|
|
|
|
|
A. You need to set up your terminal correctly. For more details, see
|
2013-08-11 07:22:42 +08:00
|
|
|
|
<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 color mode with this:
|
2013-08-08 12:23:43 +08:00
|
|
|
|
>
|
|
|
|
|
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
|
2013-08-11 07:22:42 +08:00
|
|
|
|
the time, add the following to your vimrc:
|
2013-08-08 12:23:43 +08:00
|
|
|
|
>
|
|
|
|
|
set laststatus=2
|
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
Q. Powerline symbols are not showing up.
|
|
|
|
|
A. First, you must install patched powerline fonts. Second, you must enable
|
2013-08-11 07:22:42 +08:00
|
|
|
|
unicode in vim.
|
2013-08-08 12:23:43 +08:00
|
|
|
|
>
|
|
|
|
|
set encoding=utf-8
|
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
Q. There is a pause when leaving insert mode.
|
|
|
|
|
A. Add the following to your vimrc.
|
|
|
|
|
>
|
|
|
|
|
set ttimeoutlen=50
|
|
|
|
|
<
|
|
|
|
|
|
2013-08-11 07:22:42 +08:00
|
|
|
|
Q. The colors look a little off for some themes.
|
|
|
|
|
A. Certain themes are derived from the active colorscheme by extracting colors
|
|
|
|
|
from predefined highlight groups. These airline themes will look good for
|
|
|
|
|
their intended matching colorschemes, but will be hit or miss when loaded
|
|
|
|
|
with other colorschemes.
|
|
|
|
|
|
|
|
|
|
|
2013-08-08 12:23:43 +08:00
|
|
|
|
Solutions to other common problems can be found in the Wiki:
|
2013-07-20 21:24:15 +08:00
|
|
|
|
<https://github.com/bling/vim-airline/wiki/FAQ>
|
|
|
|
|
|
2013-07-01 19:33:26 +08:00
|
|
|
|
==============================================================================
|
|
|
|
|
CONTRIBUTIONS *airline-contributions*
|
|
|
|
|
|
2013-07-15 22:45:47 +08:00
|
|
|
|
Contributions and pull requests are welcome.
|
2013-07-01 19:33:26 +08:00
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
LICENSE *airline-license*
|
|
|
|
|
|
2013-08-03 01:56:12 +08:00
|
|
|
|
MIT license. Copyright © 2013 Bailey Ling.
|
2013-07-15 22:45:47 +08:00
|
|
|
|
|
2013-07-01 19:33:26 +08:00
|
|
|
|
|
|
|
|
|
vim:tw=78:ts=8:ft=help:norl:
|