-
Notifications
You must be signed in to change notification settings - Fork 1.1k
/
Copy pathairline.txt
2174 lines (1807 loc) · 86.8 KB
/
airline.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
*airline.txt* Lean and mean status/tabline that's light as air
*airline* *vim-airline*
_ _ _ _ ~
__ _(_)_ __ ___ __ _(_)_ __| (_)_ __ ___ ~
\ \ / / | '_ ` _ \ _____ / _` | | '__| | | '_ \ / _ \ ~
\ V /| | | | | | |_____| (_| | | | | | | | | | __/ ~
\_/ |_|_| |_| |_| \__,_|_|_| |_|_|_| |_|\___| ~
~
Version: 0.11
=============================================================================
CONTENTS *airline-contents*
01. Intro ............................................... |airline-intro|
02. Features ......................................... |airline-features|
03. Name ................................................. |airline-name|
04. Configuration ............................... |airline-configuration|
05. Commands ......................................... |airline-commands|
06. Autocommands ................................. |airline-autocommands|
07. Customization ............................... |airline-customization|
08. Extensions ..................................... |airline-extensions|
09. Advanced Customization ............. |airline-advanced-customization|
10. Funcrefs ......................................... |airline-funcrefs|
11. Pipeline ......................................... |airline-pipeline|
12. Writing Extensions ..................... |airline-writing-extensions|
13. Writing Themes ..................................... |airline-themes|
14. Troubleshooting ........................... |airline-troubleshooting|
15. Contributions ............................... |airline-contributions|
16. License ........................................... |airline-license|
=============================================================================
INTRODUCTION *airline-intro*
vim-airline is a fast and lightweight alternative to powerline, written
in 100% vimscript with no outside dependencies.
When the plugin is correctly loaded, Vim will draw a nice statusline at the
bottom of each window.
That line consists of several sections, each one displaying some piece of
information. By default (without configuration) this line will look like
this: >
+---------------------------------------------------------------------------+
|~ |
|~ |
|~ VIM - Vi IMproved |
|~ |
|~ version 8.0 |
|~ 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 mode + additional flags like crypt/spell/paste (`INSERT`)
B VCS information (branch, hunk summary) (`master`)
C filename + read-only flag (`~/.vim/vimrc RO`)
X filetype (`vim`)
Y file encoding[fileformat] (`utf-8[unix]`)
optionally may contain Byte Order Mark `[BOM]` and missing end of last
line `[!EOL]`
Z current position in the file
percentage % ln: current line/number of lines ☰ cn: column
So this: 10% ln:10/100☰ cn:20
means: >
10% - 10 percent
ln: - line number is
10/100☰ - 10 of 100 total lines
cn: - column number is
20 - 20
<
[...] additional sections (warning/errors/statistics)
from external plugins (e.g. YCM/syntastic/...)
For a better look, those sections can be colored differently, depending on
the mode and whether the current file is 'modified'
Additionally, several extensions exists, that can provide additional feature
(for example the tabline extension provides an extra statusline on the top of
the Vim window and can display loaded buffers and tabs in the current Vim
session).
Most of this is customizable and the default sections can be configured using
the vim variables g:airline_section_<name> (see |airline-default-sections|)
=============================================================================
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.
* extremely easy to write themes.
=============================================================================
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):
* enable experimental features >
" Currently: Enable Vim9 Script implementation
let g:airline_experimental = 1
* 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 modified detection >
let g:airline_detect_modified=1
* enable paste detection >
let g:airline_detect_paste=1
<
* enable crypt detection >
let g:airline_detect_crypt=1
* enable spell detection >
let g:airline_detect_spell=1
* display spelling language when spell detection is enabled
(if enough space is available) >
let g:airline_detect_spelllang=1
<
Set to 'flag' to get a unicode icon of the relevant country flag instead of
the 'spelllang' itself
* enable iminsert detection >
let g:airline_detect_iminsert=0
<
* determine whether inactive windows should have the left section collapsed
to only the filename of that buffer. >
let g:airline_inactive_collapse=1
<
* Use alternative separators for the statusline of inactive windows >
let g:airline_inactive_alt_sep=1
<
* themes are automatically selected based on the matching colorscheme. this
can be overridden by defining a value. >
let g:airline_theme='dark'
<
Note: Only the dark theme is distributed with vim-airline. For more themes,
checkout the vim-airline-themes repository
(https://github.com/vim-airline/vim-airline-themes)
* if you want to patch the airline theme before it gets applied, you can
supply the name of a function where you can modify the palette. >
let g:airline_theme_patch_func = 'AirlineThemePatch'
function! AirlineThemePatch(palette)
if g:airline_theme == 'badwolf'
for colors in values(a:palette.inactive)
let colors[3] = 245
endfor
endif
endfunction
<
* if you want to update your highlights without affecting the airline theme,
you can do so using the AirlineAfterTheme autocmd. >
function! s:update_highlights()
hi CursorLine ctermbg=none guibg=NONE
hi VertSplit ctermbg=none guibg=NONE
endfunction
autocmd User AirlineAfterTheme call s:update_highlights()
<
* By default, airline will use unicode symbols if your encoding matches
utf-8. If you want the powerline symbols set this variable: >
let g:airline_powerline_fonts = 1
<
If you want to use plain ascii symbols, set this variable: >
let g:airline_symbols_ascii = 1
<
* define the set of text to display for each mode. >
let g:airline_mode_map = {} " see source for the defaults
" or copy paste the following into your vimrc for shortform text
let g:airline_mode_map = {
\ '__' : '-',
\ 'c' : 'C',
\ 'i' : 'I',
\ 'ic' : 'I',
\ 'ix' : 'I',
\ 'n' : 'N',
\ 'multi' : 'M',
\ 'ni' : 'N',
\ 'no' : 'N',
\ 'R' : 'R',
\ 'Rv' : 'R',
\ 's' : 'S',
\ 'S' : 'S',
\ '' : 'S',
\ 't' : 'T',
\ 'v' : 'V',
\ 'V' : 'V',
\ '' : 'V',
\ }
Note: 'multi' is for displaying the multiple cursor mode
<
* 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
<
* define the set of names to be displayed instead of a specific filetypes
(for section a and b): >
let g:airline_filetype_overrides = {
\ 'coc-explorer': [ 'CoC Explorer', '' ],
\ 'defx': ['defx', '%{b:defx.paths[0]}'],
\ 'fugitive': ['fugitive', '%{airline#util#wrap(airline#extensions#branch#get_head(),80)}'],
\ 'floggraph': [ 'Flog', '%{get(b:, "flog_status_summary", "")}' ],
\ 'gundo': [ 'Gundo', '' ],
\ 'help': [ 'Help', '%f' ],
\ 'minibufexpl': [ 'MiniBufExplorer', '' ],
\ 'nerdtree': [ get(g:, 'NERDTreeStatusline', 'NERD'), '' ],
\ 'startify': [ 'startify', '' ],
\ 'vim-plug': [ 'Plugins', '' ],
\ 'vimfiler': [ 'vimfiler', '%{vimfiler#get_status_string()}' ],
\ 'vimshell': ['vimshell','%{vimshell#get_status_string()}'],
\ 'vaffle' : [ 'Vaffle', '%{b:vaffle.dir}' ],
\ }
<
* defines whether the preview window should be excluded from having its window
statusline modified (may help with plugins which use the preview window
heavily) >
let g:airline_exclude_preview = 0
<
* disable the Airline statusline customization for selected windows (this is a
window-local variable so you can disable it per-window) >
let w:airline_disable_statusline = 1
<
Old deprecated name: `w:airline_disabled`
See also the following options, for disabling setting the statusline
globally or per-buffer
* Disable setting the statusline option: >
" disable globally
let g:airline_disable_statusline = 1
" disable per-buffer
let b:airline_disable_statusline = 1
< This setting disables setting the 'statusline' option. This allows to use
e.g. the tabline extension (|airline-tabline|) but keep the 'statusline'
option totally configurable by a custom configuration.
* Do not draw separators for empty sections (only for the active window) >
let g:airline_skip_empty_sections = 1
<
This variable can be overridden by setting a window-local variable with
the same name (in the correct window): >
let w:airline_skip_empty_sections = 0
<
* Caches the changes to the highlighting groups, should therefore be faster.
Set this to one, if you experience a sluggish Vim: >
let g:airline_highlighting_cache = 0
<
* disable airline on FocusLost autocommand (e.g. when Vim loses focus): >
let g:airline_focuslost_inactive = 0
<
* configure the fileformat output
By default, it will display something like 'utf-8[unix]', however, you can
skip displaying it, if the output matches a configured string. To do so,
set: >
let g:airline#parts#ffenc#skip_expected_string='utf-8[unix]'
<
* Display the statusline in the tabline (first top line): >
let g:airline_statusline_ontop = 1
<
Setting this option, allows to use the statusline option to be used by
a custom function or another plugin, since airline won't change it.
Note: This setting is experimental and works on a best effort approach.
Updating the statusline might not always happen as fast as needed, but that
is a limitation, that comes from Vim. airline tries to force an update if
needed, but it might not always work as expected.
To force updating the tabline on mode changes, call `airline#check_mode()`
in your custom statusline setting: `:set stl=%!airline#check_mode(winnr())`
will correctly update the tabline on mode changes.
* Display a short path in statusline: >
let g:airline_stl_path_style = 'short'
>
* Display a only file name in statusline: >
let g:airline_section_c_only_filename = 1
>
=============================================================================
COMMANDS *airline-commands*
:AirlineTheme {theme-name} *:AirlineTheme*
Displays or changes the current theme.
Note: `random` will switch to a random theme.
:AirlineToggleWhitespace *:AirlineToggleWhitespace*
Toggles whitespace detection.
:AirlineToggle *:AirlineToggle*
Toggles between the standard 'statusline' and airline.
:AirlineRefresh[!] *:AirlineRefresh*
Refreshes all highlight groups and redraws the statusline. With the '!'
attribute, skips refreshing the highlighting groups.
:AirlineExtensions *:AirlineExtensions*
Shows the status of all available airline extensions.
Extern means, the extensions does not come bundled with Airline.
=============================================================================
AUTOCOMMANDS *airline-autocommands*
Airline comes with some user-defined autocommands.
|AirlineAfterInit| after plugin is initialized, but before the statusline
is replaced
|AirlineAfterTheme| after theme of the statusline has been changed
|AirlineToggledOn| after airline is activated and replaced the statusline
|AirlineToggledOff| after airline is deactivated and the statusline is
restored to the original
|AirlineModeChanged| The mode in Vim changed.
=============================================================================
CUSTOMIZATION *airline-customization*
The following are some unicode symbols for customizing the left/right
separators, as well as the powerline font glyphs.
Note: Some additional characters like spaces and colons may be included in the
default. Including them within the symbol definitions rather than outside of
them allows you to eliminate or otherwise alter them.
Note: Be aware that some of these glyphs are defined as ligatures, so they may
show up different (usually bigger) if followed by a space. This only happens
if both the font and terminal implementation used support ligatures. If you
want to follow a glyph with a space _without_ the alternate ligature being
rendered, follow it with a non-breaking-space character.
Note: You must define the dictionary first before setting values. Also, it's
a good idea to check whether it exists as to avoid accidentally overwriting
its contents. >
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
" 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_symbols.colnr = ' ㏇:'
let g:airline_symbols.colnr = ' ℅:'
let g:airline_symbols.crypt = '🔒'
let g:airline_symbols.linenr = '☰'
let g:airline_symbols.linenr = ' ␊:'
let g:airline_symbols.linenr = ' :'
let g:airline_symbols.linenr = '¶'
let g:airline_symbols.maxlinenr = ''
let g:airline_symbols.maxlinenr = '㏑'
let g:airline_symbols.branch = '⎇'
let g:airline_symbols.paste = 'ρ'
let g:airline_symbols.paste = 'Þ'
let g:airline_symbols.paste = '∥'
let g:airline_symbols.spell = 'Ꞩ'
let g:airline_symbols.notexists = 'Ɇ'
let g:airline_symbols.notexists = '∄'
let g:airline_symbols.whitespace = 'Ξ'
" 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_symbols.branch = ''
let g:airline_symbols.colnr = ' ℅:'
let g:airline_symbols.readonly = ''
let g:airline_symbols.linenr = ' :'
let g:airline_symbols.maxlinenr = '☰ '
let g:airline_symbols.dirty='⚡'
" 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_symbols.branch = '⭠'
let g:airline_symbols.readonly = '⭤'
let g:airline_symbols.linenr = '⭡'
<
For more intricate customizations, you can replace the predefined sections
with the usual statusline syntax.
Note: If you define any section variables it will replace the default values
entirely. If you want to disable only certain parts of a section you can
try using variables defined in the |airline-configuration| or
|airline-extensions| section.
|airline-default-sections|
The following table describes what sections are available by default, and
which extensions/functions make use of it. Note: using `g:` (global) variable
prefix means, those variables are defined for all windows. You can use `w:`
(window local variables) instead to make this apply only to a particular
window.
>
variable names default contents
---------------------------------------------------------------------------
let g:airline_section_a (mode, crypt, paste, spell, iminsert)
let g:airline_section_b (hunks, branch)[*]
let g:airline_section_c (bufferline or filename, readonly)
let g:airline_section_gutter (csv)
let g:airline_section_x (tagbar, filetype, virtualenv)
let g:airline_section_y (fileencoding, fileformat, 'bom', 'eol')
let g:airline_section_z (percentage, line number, column number)
let g:airline_section_error (ycm_error_count, syntastic-err, eclim,
languageclient_error_count)
let g:airline_section_warning (ycm_warning_count, syntastic-warn,
languageclient_warning_count, whitespace)
" [*] This section needs at least the fugitive extension or else
" it will remain empty
"
" here is an example of how you could replace the branch indicator with
" the current working directory (limited to 10 characters),
" followed by the filename.
let g:airline_section_b = '%-0.10{getcwd()}'
let g:airline_section_c = '%t'
<
*airline#ignore_bufadd_pat*
Determines a pattern to ignore a buffer name for various things (e.g. the
tabline extension) or the read-only check. Default is
`g:airline#extensions#tabline#ignore_bufadd_pat` (see below) or
`'!|defx|gundo|nerd_tree|startify|tagbar|term://|undotree|vimfiler'`
if it is unset.
The "!" prevents terminal buffers to appear in the tabline.
*airline#extensions#tabline#exclude_buffers*
Buffer numbers to be excluded from showing in the tabline (similar to
|airline#ignore_bufadd_pat|).
=============================================================================
EXTENSIONS *airline-extensions*
Most extensions are enabled by default and lazily loaded when the
corresponding plugin (if any) is detected.
By default, airline will attempt to load any extension it can find in the
'runtimepath'. On some systems this can result in an undesirable startup
cost. You can disable the check with the following flag. >
let g:airline#extensions#disable_rtp_load = 1
<
Note: Third party plugins that rely on this behavior will be affected. You
will need to manually load them.
Alternatively, if you want a minimalistic setup and would rather opt-in which
extensions get loaded instead of disabling each individually, you can declare
the following list variable: >
" an empty list disables all extensions
let g:airline_extensions = []
" or only load what you want
let g:airline_extensions = ['branch', 'tabline']
<
In addition, each extension can be configured individually. Following are
the options for each extension (in alphabetical order, after the default
extension)
Usually, each extension will only be loaded if the required Vim plugin is
installed as well, otherwise it will remain disabled. See the output of the
|:AirlineExtensions| command.
------------------------------------- *airline-ale*
ale <https://github.com/dense-analysis/ale>
* enable/disable ale integration >
let g:airline#extensions#ale#enabled = 1
* ale error_symbol >
let g:airline#extensions#ale#error_symbol = 'E:'
<
* ale warning >
let g:airline#extensions#ale#warning_symbol = 'W:'
* ale show_line_numbers >
let g:airline#extensions#ale#show_line_numbers = 1
<
* ale open_lnum_symbol >
let g:airline#extensions#ale#open_lnum_symbol = '(L'
<
* ale close_lnum_symbol >
let g:airline#extensions#ale#close_lnum_symbol = ')'
------------------------------------- *airline-battery*
vim-battery <https://github.com/lambdalisue/battery.vim>
* enable/disable battery integration >
let g:airline#extensions#battery#enabled = 1
< default: 0
------------------------------------- *airline-bookmark*
vim-bookmark <https://github.com/MattesGroeger/vim-bookmarks>
* enable/disable bookmark integration >
let g:airline#extensions#bookmark#enabled = 1
------------------------------------- *airline-branch*
vim-airline will display the branch-indicator together with the branch name
in the statusline, if one of the following plugins is installed:
fugitive.vim <https://github.com/tpope/vim-fugitive>
gina.vim <https://github.com/lambdalisue/gina.vim>
lawrencium <https://bitbucket.org/ludovicchabant/vim-lawrencium>
vcscommand <http://www.vim.org/scripts/script.php?script_id=90>
If a file is edited, that is not yet in the repository, the
notexists symbol will be displayed after the branch name. If the repository
is not clean, the dirty symbol will be displayed after the branch name.
* notexists symbol means you are editing a file, that has not been
committed yet
default: '?'
* the dirty symbol basically means your working directory is dirty
default: '!'
Note: the branch extension will be disabled for windows smaller than 80
characters.
* enable/disable fugitive/lawrencium integration >
let g:airline#extensions#branch#enabled = 1
<
* change the text for when no branch is detected >
let g:airline#extensions#branch#empty_message = ''
<
* define the order in which the branches of different vcs systems will be
displayed on the statusline (currently only for fugitive and lawrencium) >
let g:airline#extensions#branch#vcs_priority = ["git", "mercurial"]
<
* use vcscommand.vim if available >
let g:airline#extensions#branch#use_vcscommand = 0
<
* truncate long branch names to a fixed length >
let g:airline#extensions#branch#displayed_head_limit = 10
<
* customize formatting of branch name >
" default value leaves the name unmodified
let g:airline#extensions#branch#format = 0
" to only show the tail, e.g. a branch 'feature/foo' becomes 'foo', use
let g:airline#extensions#branch#format = 1
" to truncate all path sections but the last one, e.g. a branch
" 'foo/bar/baz' becomes 'f/b/baz', use
let g:airline#extensions#branch#format = 2
" if a string is provided, it should be the name of a function that
" takes a string and returns the desired value
let g:airline#extensions#branch#format = 'CustomBranchName'
function! CustomBranchName(name)
return '[' . a:name . ']'
endfunction
<
* truncate sha1 commits at this number of characters >
let g:airline#extensions#branch#sha1_len = 10
* customize branch name retrieval for any version control system >
let g:airline#extensions#branch#custom_head = 'GetScmBranch'
function! GetScmBranch()
if !exists('b:perforce_client')
let b:perforce_client = system('p4 client -o | grep Client')
" Invalidate cache to prevent stale data when switching clients. Use a
" buffer-unique group name to prevent clearing autocmds for other
" buffers.
exec 'augroup perforce_client-'. bufnr("%")
au!
autocmd BufWinLeave <buffer> silent! unlet! b:perforce_client
augroup END
endif
return b:perforce_client
endfunction
>
* configure additional vcs checks to run
By default, vim-airline will check if the current edited file is untracked
in the repository. If so, it will append the `g:airline_symbols.notexists`
symbol to the branch name.
In addition, it will check if the repository is clean, else it will append
the `g:airline_symbols.dirty` symbol to the branch name (if the current
file is not untracked). Configure, by setting the following variable: >
let g:airline#extensions#branch#vcs_checks = ['untracked', 'dirty']
<
------------------------------------- *airline-flog*
vim-flog <https://github.com/rbong/vim-flog>
If vim-flog is installed, vim-airline will display the branch name
together with a status summary in the git log graph buffer;
either 'no changes' or the number of added/removed/modified files.
------------------------------------- *airline-bufferline*
vim-bufferline <https://github.com/bling/vim-bufferline>
* enable/disable bufferline integration >
let g:airline#extensions#bufferline#enabled = 1
<
* determine whether bufferline will overwrite customization variables >
let g:airline#extensions#bufferline#overwrite_variables = 1
<
------------------------------------- *airline-capslock*
vim-capslock <https://github.com/tpope/vim-capslock>
* enable/disable vim-capslock integration >
let g:airline#extensions#capslock#enabled = 1
* change vim-capslock symbol >
let g:airline#extensions#capslock#symbol = 'CAPS' (default)
------------------------------------- *airline-coc*
coc <https://github.com/neoclide/coc.nvim>
* enable/disable coc integration >
let g:airline#extensions#coc#enabled = 1
<
* change error symbol: >
let g:airline#extensions#coc#error_symbol = 'E:'
<
* change warning symbol: >
let g:airline#extensions#coc#warning_symbol = 'W:'
<
* enable/disable coc status display >
let g:airline#extensions#coc#show_coc_status = 1
* change the error format (%C - error count, %L - line number): >
let g:airline#extensions#coc#stl_format_err = '%C(L%L)'
<
* change the warning format (%C - error count, %L - line number): >
let g:airline#extensions#coc#stl_format_warn = '%C(L%L)'
<
------------------------------------- *airline-codeium*
vim-codeium <https://github.com/Exafunction/codeium.vim>
* enable/disable codeium.vim integration >
let g:airline#extensions#codeium#enabled = 1
------------------------------------- *airline-commandt*
command-t <https://github.com/wincent/command-t>
No configuration available.
------------------------------------- *airline-csv*
csv.vim <https://github.com/chrisbra/csv.vim>
* enable/disable csv integration for displaying the current column. >
let g:airline#extensions#csv#enabled = 1
<
* change how columns are displayed. >
let g:airline#extensions#csv#column_display = 'Number' (default)
let g:airline#extensions#csv#column_display = 'Name'
<
------------------------------------- *airline-ctrlp*
ctrlp <https://github.com/ctrlpvim/ctrlp.vim>
* configure which mode colors should ctrlp window use (takes effect
only if the active airline theme doesn't define ctrlp colors) >
let g:airline#extensions#ctrlp#color_template = 'insert' (default)
let g:airline#extensions#ctrlp#color_template = 'normal'
let g:airline#extensions#ctrlp#color_template = 'visual'
let g:airline#extensions#ctrlp#color_template = 'replace'
<
* configure whether to show the previous and next modes (mru, buffer, etc...)
>
let g:airline#extensions#ctrlp#show_adjacent_modes = 1
<
------------------------------------- *airline-ctrlspace*
vim-ctrlspace <https://github.com/szw/vim-ctrlspace>
* enable/disable vim-ctrlspace integration >
let g:airline#extensions#ctrlspace#enabled = 1
<
To make the vim-ctrlspace integration work you will need to make the
ctrlspace statusline function call the correct airline function. Therefore
add the following line into your .vimrc: >
let g:CtrlSpaceStatuslineFunction =
\ "airline#extensions#ctrlspace#statusline()"
<
------------------------------------- *airline-cursormode*
cursormode <https://github.com/vheon/vim-cursormode>
Built-in extension to displays cursor in different colors depending on the
current mode (only works in terminals iTerm, AppleTerm and xterm)
* enable cursormode integration >
let g:airline#extensions#cursormode#enabled = 1
* mode function. Return value is used as key for the color mapping. Default
is |mode()|
`let g:cursormode_mode_func = 'mode'`
color mapping. Keys come from `g:cursormode_mode_func`
(a background value can be appended)
`let g:cursormode_color_map = {`
`\ "nlight": '#000000',`
`\ "ndark": '#BBBBBB',`
`\ "i": g:airline#themes#{g:airline_theme}#palette.insert.airline_a[1],`
`\ "R": g:airline#themes#{g:airline_theme}#palette.replace.airline_a[1],`
`\ "v": g:airline#themes#{g:airline_theme}#palette.visual.airline_a[1],`
`\ "V": g:airline#themes#{g:airline_theme}#palette.visual.airline_a[1],`
`\ "\<C-V>": g:airline#themes#{g:airline_theme}#palette.visual.airline_a[1],`
`\ }`
------------------------------------- *airline-default*
The default extensions is an internal extension that is needed for handling
all other extensions, takes care of how all sections will be combined into a
'statusline' specific item and when to truncate each section.
It understands all of the `g:` variables in the |airline-configuration|
section, however it also has some more fine-tuned configuration values that
you can use.
* control which sections get truncated and at what width. >
let g:airline#extensions#default#section_truncate_width = {
\ 'b': 79,
\ 'x': 60,
\ 'y': 80,
\ 'z': 45,
\ 'warning': 80,
\ 'error': 80,
\ }
" Note: set to an empty dictionary to disable truncation.
let g:airline#extensions#default#section_truncate_width = {}
<
* configure the layout of the sections by specifying an array of two arrays
(first array is the left side, second array is the right side). >
let g:airline#extensions#default#layout = [
\ [ 'a', 'b', 'c' ],
\ [ 'x', 'y', 'z', 'error', 'warning' ]
\ ]
<
* configure the layout to not use %(%) grouping items in the statusline.
Try setting this to zero, if you notice bleeding color artifacts >
let g:airline#extensions#default#section_use_groupitems = 1
<
------------------------------------- *airline-denite*
Denite <https://github.com/Shougo/denite.nvim>
* enable/disable denite integration >
let g:airline#extensions#denite#enabled = 1
------------------------------------- *airline-dirvish*
vim-dirvish <https://github.com/justinmk/vim-dirvish>
* enable/disable vim-dirvish integration >
let g:airline#extensions#dirvish#enabled = 1
< default: 1
------------------------------------- *airline-eclim*
eclim <https://eclim.org>
* enable/disable eclim integration, which works well with the
|airline-syntastic| extension. >
let g:airline#extensions#eclim#enabled = 1
------------------------------------- *airline-fern*
fern.vim <https://github.com/lambdalisue/fern.vim>
Airline displays the fern.vim specific statusline.
(for details, see the help of fern.vim)
* enable/disable bufferline integration >
let g:airline#extensions#fern#enabled = 1
< default: 1
------------------------------------- *airline-fugitiveline*
This extension hides the fugitive://**// part of the buffer names, to only
show the file name as if it were in the current working tree.
It is deactivated by default if |airline-bufferline| is activated.
* enable/disable bufferline integration >
let g:airline#extensions#fugitiveline#enabled = 1
<
If enabled, the buffer that comes from fugitive, will have added a trailing
"[git]" to be able to distinguish between fugitive and non-fugitive buffers.
------------------------------------- *airline-fzf*
fzf <https://github.com/junegunn/fzf>
fzf.vim <https://github.com/junegunn/fzf.vim>
* enable/disable fzf integration >
let g:airline#extensions#fzf#enabled = 1
------------------------------------- *airline-gina*
gina.vim <https://github.com/lambdalisue/gina.vim>
Airline displays the gina.vim specific statusline.
(for details, see the help of gina.vim)
* enable/disable bufferline integration >
let g:airline#extensions#gina#enabled = 1
< default: 1
------------------------------------- *airline-grepper*
vim-grepper <https://github.com/mhinz/vim-grepper>
* enable/disable vim-grepper integration >
let g:airline#extensions#grepper#enabled = 1
------------------------------------- *airline-gutentags*
vim-gutentags <https://github.com/ludovicchabant/vim-gutentags>
* enable/disable vim-gutentags integration >
let g:airline#extensions#gutentags#enabled = 1
------------------------------------- *gen_tags.vim*
gen_tags.vim <https://github.com/jsfaint/gen_tags.vim>
* enable/disable gen_tags.vim integration >
let g:airline#extensions#gen_tags#enabled = 1
------------------------------------- *airline-hunks*
vim-gitgutter <https://github.com/airblade/vim-gitgutter>
vim-signify <https://github.com/mhinz/vim-signify>
changesPlugin <https://github.com/chrisbra/changesPlugin>
quickfixsigns <https://github.com/tomtom/quickfixsigns_vim>
coc-git <https://github.com/neoclide/coc-git>
gitsigns.nvim <https://github.com/lewis6991/gitsigns.nvim>
You can use `airline#extensions#hunks#get_raw_hunks()` to get the full hunks,
without shortening. This allows for advanced customization, or a quick way of
querying how many changes you got. It will return something like '+4 ~2 -1'.
* enable/disable showing a summary of changed hunks under source control. >
let g:airline#extensions#hunks#enabled = 1
<
* enable/disable showing only non-zero hunks. >
let g:airline#extensions#hunks#non_zero_only = 0
<
* set hunk count symbols. >
let g:airline#extensions#hunks#hunk_symbols = ['+', '~', '-']
* enable coc-git extension.
If not set to 1, vim-airline will not consider to use coc-git for the hunks
extension. Make sure to have the coc-git extension enabled. >
let g:airline#extensions#hunks#coc_git = 1
<
------------------------------------- *airline-keymap*
vim-keymap
This extension displays the current 'keymap' in use.
* enable/disable vim-keymap extension >
let g:airline#extensions#keymap#enabled = 1
* set label for a keymap (default is from g:airline_symbols.keymap) >
let g:airline#extensions#keymap#label = 'Layout:'
* set name for default layout (empty to disable it completely) >
let g:airline#extensions#keymap#default = ''
* set short codes for layout names >
let g:airline#extensions#keymap#short_codes = {'russian-jcukenwin': 'ru'}
------------------------------------- *airline-languageclient*
LanguageClient <https://github.com/autozimu/LanguageClient-neovim>
(despite its name, it can be used for Vim and Neovim).
* enable/disable LanguageClient integration >
let g:airline#extensions#languageclient#enabled = 1
* languageclient error_symbol >
let g:airline#extensions#languageclient#error_symbol = 'E:'
<
* languageclient warning_symbol >
let g:airline#extensions#languageclient#warning_symbol = 'W:'
* languageclient show_line_numbers >
let g:airline#extensions#languageclient#show_line_numbers = 1
<
* languageclient open_lnum_symbol >
let g:airline#extensions#languageclient#open_lnum_symbol = '(L'
<
* languageclient close_lnum_symbol >
let g:airline#extensions#languageclient#close_lnum_symbol = ')'
------------------------------------- *airline-localsearch*
localsearch <https://github.com/mox-mox/vim-localsearch>
* enable/disable localsearch indicator integration >
let g:airline#extensions#localsearch#enabled = 1
* invert the localsearch indicator
if set to 1, the indicator shall only be shown when localsearch is disabled
the text will also change from 'LS' to 'GS' (Global Search) >
let g:airline#extensions#localsearch#inverted = 0
------------------------------------- *airline-lsp*
lsp <https://github.com/prabirshrestha/vim-lsp>
* enable/disable lsp integration >
let g:airline#extensions#lsp#enabled = 1
* lsp error_symbol >
let g:airline#extensions#lsp#error_symbol = 'E:'
<
* lsp warning >
let g:airline#extensions#lsp#warning_symbol = 'W:'
* lsp show_line_numbers >
let g:airline#extensions#lsp#show_line_numbers = 1
<
* lsp open_lnum_symbol >
let g:airline#extensions#lsp#open_lnum_symbol = '(L'
<
* lsp close_lnum_symbol >
let g:airline#extensions#lsp#close_lnum_symbol = ')'
<
* lsp progress skip time
Suppresses the frequency of status line updates.
Prevents heavy operation when using a language server that sends frequent progress notifications.
Set 0 to disable. >
let g:airline#extensions#lsp#progress_skip_time = 0.3 (default)
<
------------------------------------- *airline-neomake*
neomake <https://github.com/neomake/neomake>
* enable/disable neomake integration >
let g:airline#extensions#neomake#enabled = 1
* neomake error_symbol >
let g:airline#extensions#neomake#error_symbol = 'E:'
<
* neomake warning >
let g:airline#extensions#neomake#warning_symbol = 'W:'
<
------------------------------------- *airline-nerdtree*
NerdTree <https://github.com/preservim/nerdtree.git>
Airline displays the Nerdtree specific statusline (which can be configured
using the |'NerdTreeStatusline'| variable (for details, see the help of
NerdTree)
* enable/disable nerdtree's statusline integration >
let g:airline#extensions#nerdtree_statusline = 1
< default: 1
------------------------------------- *airline-nrrwrgn*
NrrwRgn <https://github.com/chrisbra/NrrwRgn>
* enable/disable NrrwRgn integration >
let g:airline#extensions#nrrwrgn#enabled = 1
------------------------------------- *airline-nvimlsp*
nvimlsp <https://github.com/neovim/nvim-lsp>
* enable/disable nvimlsp integration >
let g:airline#extensions#nvimlsp#enabled = 1
* nvimlsp error_symbol >
let g:airline#extensions#nvimlsp#error_symbol = 'E:'
<
* nvimlsp warning - needs v:lua.vim.diagnostic.get
let g:airline#extensions#nvimlsp#warning_symbol = 'W:'
* nvimlsp show_line_numbers - needs v:lua.vim.diagnostic.get
let g:airline#extensions#nvimlsp#show_line_numbers = 1
* nvimlsp open_lnum_symbol - needs v:lua.vim.diagnostic.get
let g:airline#extensions#nvimlsp#open_lnum_symbol = '(L'
* nvimlsp close_lnum_symbol - needs v:lua.vim.diagnostic.get
let g:airline#extensions#nvimlsp#close_lnum_symbol = ')'
------------------------------------- *airline-obsession*
vim-obsession <https://github.com/tpope/vim-obsession>
* enable/disable vim-obsession integration >
let g:airline#extensions#obsession#enabled = 1