From 212dcd0bf753f08c0127a26a71b673c734b45c02 Mon Sep 17 00:00:00 2001 From: Yaroslav Date: Thu, 5 Sep 2019 19:35:38 +0300 Subject: init commit, extracted vim config from i3rice --- .vim/doc/airline.txt | 1554 ++++++++++++++++++++++++++++++++++++++++++++++++++ .vim/doc/neomake.txt | 1052 ++++++++++++++++++++++++++++++++++ .vim/doc/tags | 262 +++++++++ 3 files changed, 2868 insertions(+) create mode 100644 .vim/doc/airline.txt create mode 100644 .vim/doc/neomake.txt create mode 100644 .vim/doc/tags (limited to '.vim/doc') diff --git a/.vim/doc/airline.txt b/.vim/doc/airline.txt new file mode 100644 index 0000000..5ef18d3 --- /dev/null +++ b/.vim/doc/airline.txt @@ -0,0 +1,1554 @@ +*airline.txt* Lean and mean status/tabline that's light as air +*airline* *vim-airline* + _ _ _ _ ~ + __ _(_)_ __ ___ __ _(_)_ __| (_)_ __ ___ ~ + \ \ / / | '_ ` _ \ _____ / _` | | '__| | | '_ \ / _ \ ~ + \ V /| | | | | | |_____| (_| | | | | | | | | | __/ ~ + \_/ |_|_| |_| |_| \__,_|_|_| |_|_|_| |_|\___| ~ + ~ +============================================================================== +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 to exit | +|~ type :help or for on-line help | +|~ type :help version8 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 VCS information (branch, hunk summary) (master) + C filename + read-only flag (~/.vim/vimrc RO) + X filetype (vim) + Y file encoding[fileformat] (utf-8[unix]) + Z current position in the file + percentage % ☰ current line/number of lines ln : column + So this: 10% ☰ 10/100 ln : 20 means: > + 10% - 10 percent + ☰ 10 - current line 10 + /100 ln - of 100 lines + : 20 - current column 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 (e.g. 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_ (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): + +* 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 +< +* 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 seperators 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 + (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 +< +* 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', + \ 'ni' : 'N', + \ 'no' : 'N', + \ 'R' : 'R', + \ 'Rv' : 'R', + \ 's' : 'S', + \ 'S' : 'S', + \ '' : 'S', + \ 't' : 'T', + \ 'v' : 'V', + \ 'V' : 'V', + \ '' : 'V', + \ } +< +* 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 +< +* disable the Airline customization for selective windows (this is a + window-local variable so you can disable it per-window) > + let w:airline_disabled = 1 + +* Do not draw separators for empty sections (only for the active window) > + let g:airline_skip_empty_sections = 1 +< + This variable can be overriden 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 = 1 +< +* 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]' +< +============================================================================== +COMMANDS *airline-commands* + +:AirlineTheme {theme-name} *:AirlineTheme* + Displays or changes the current 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. + +:AirlineExtensions *:AirlineExtensions* + Shows the status of all available airline extensions. + +============================================================================== +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: 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.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.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.readonly = '' + let g:airline_symbols.linenr = '☰' + let g:airline_symbols.maxlinenr = '' + + " 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| +> + 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) + let g:airline_section_gutter (readonly, csv) + let g:airline_section_x (tagbar, filetype, virtualenv) + let g:airline_section_y (fileencoding, fileformat) + 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 +`'gundo|undotree|vimfiler|tagbar|nerd_tree|startify|!'` 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 + +* enable/disable ale integration > + let g:airline#extensions#ale#enabled = 1 + +* ale error_symbol > + let airline#extensions#ale#error_symbol = 'E:' +< +* ale warning > + let airline#extensions#ale#warning_symbol = 'W:' + +* ale show_line_numbers > + let airline#extensions#ale#show_line_numbers = 1 +< +* ale open_lnum_symbol > + let airline#extensions#ale#open_lnum_symbol = '(L' +< +* ale close_lnum_symbol > + let airline#extensions#ale#close_lnum_symbol = ')' +< +------------------------------------- *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 +lawrencium +vcscommand + +If a file is edited, that is not yet in the repository, the +notexists symbol will be displayed after the branch name. + +* 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 unmodifed + 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 silent! unlet! b:perforce_client + augroup END + endif + return b:perforce_client + endfunction +< +------------------------------------- *airline-bufferline* +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 + +* enable/disable vim-capslock integration > + let g:airline#extensions#capslock#enabled = 1 + +------------------------------------- *airline-csv* +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 + +* 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 + +* 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 + +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` (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],` + `\ "\": 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': 88, + \ '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 airline#extensions#default#section_use_groupitems = 1 +< +------------------------------------- *airline-eclim* +eclim + +* enable/disable eclim integration, which works well with the + |airline-syntastic| extension. > + let g:airline#extensions#eclim#enabled = 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 +< +------------------------------------- *airline-grepper* +vim-grepper + +* enable/disable vim-grepper integration > + let g:airline#extensions#grepper#enabled = 1 + +------------------------------------- *airline-gutentags* +vim-gutentags + +* enable/disable vim-gutentags integration > + let g:airline#extensions#gutentags#enabled = 1 + +------------------------------------- *airline-hunks* +vim-gitgutter +vim-signify +changesPlugin +quickfixsigns + +* 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 = ['+', '~', '-'] +< +------------------------------------- *airline-keymap* +vim-keymap + +This extension displays the current 'keymap' in use. + +* enable/disable vim-keymap extension > + let g:airline#extensions#keymap#enabled = 1 + +------------------------------------- *airline-languageclient* +LanguageClient +(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 airline#extensions#languageclient#error_symbol = 'E:' +< +* languageclient warning_symbol > + let airline#extensions#languageclient#warning_symbol = 'W:' + +* languageclient show_line_numbers > + let airline#extensions#languageclient#show_line_numbers = 1 +< +* languageclient open_lnum_symbol > + let airline#extensions#languageclient#open_lnum_symbol = '(L' +< +* languageclient close_lnum_symbol > + let airline#extensions#languageclient#close_lnum_symbol = ')' + +------------------------------------- *airline-localsearch* +localsearch + +* enable/disable localsearch indicator integration > + let g:airline#extensions#localsearch#enabled = 1 + +------------------------------------- *airline-neomake* +neomake + +* enable/disable neomake integration > + let g:airline#extensions#neomake#enabled = 1 + +* neomake error_symbol > + let airline#extensions#neomake#error_symbol = 'E:' +< +* neomake warning > + let airline#extensions#neomake#warning_symbol = 'W:' +< +------------------------------------- *airline-nerdtree* +NerdTree + +Airline displays the Nerdtree specific statusline (which can be configured using +the |'NerdTreeStatusline'| variable (for details, see the help of NerdTree) + +------------------------------------- *airline-nrrwrgn* +NrrwRgn + +* enable/disable NrrwRgn integration > + let g:airline#extensions#nrrwrgn#enabled = 1 + +------------------------------------- *airline-obsession* +vim-obsession + +* enable/disable vim-obsession integration > + let g:airline#extensions#obsession#enabled = 1 + +* set marked window indicator string > + let g:airline#extensions#obsession#indicator_text = '$' +< +------------------------------------- *airline-po* +This extension will display the currently translated, untranslated and fuzzy +messages when editing translations (po files). Related plugin (not necessary +for this extension is po.vim from + + +It will be enabled if the `msgfmt` executable is available and one is editing +files with the 'filetype' "po". + +* enable/disable po integration > + let g:airline#extensions#po#enabled = 1 +< +* truncate width names to a fixed length > + let g:airline#extensions#po#displayed_limit = 0 + +------------------------------------- *airline-promptline* +promptline + +* configure the path to the snapshot .sh file. Mandatory option. The created + file should be sourced by the shell on login > + " in .vimrc + airline#extensions#promptline#snapshot_file = "~/.shell_prompt.sh" + + " in .bashrc/.zshrc + [ -f ~/.shell_prompt.sh ] && source ~/.shell_prompt.sh +< +* enable/disable promptline integration > + let g:airline#extensions#promptline#enabled = 0 +< +* configure which mode colors should be used in prompt > + let airline#extensions#promptline#color_template = 'normal' (default) + let airline#extensions#promptline#color_template = 'insert' + let airline#extensions#promptline#color_template = 'visual' + let airline#extensions#promptline#color_template = 'replace' +< +------------------------------------- *airline-quickfix* +The quickfix extension is a simple built-in extension which determines +whether the buffer is a quickfix or location list buffer, and adjusts the +title accordingly. + +* configure the title text for quickfix buffers > + let g:airline#extensions#quickfix#quickfix_text = 'Quickfix' +< +* configure the title text for location list buffers > + let g:airline#extensions#quickfix#location_text = 'Location' +< +------------------------------------- *airline-syntastic* +syntastic + +* enable/disable syntastic integration > + let g:airline#extensions#syntastic#enabled = 1 + + Note: The recommendation from syntastic to modify the statusline directly + does not apply, if you use vim-airline, since it will take care for you of + adjusting the statusline. + +* syntastic error_symbol > + let airline#extensions#syntastic#error_symbol = 'E:' +< +* syntastic statusline error format (see |syntastic_stl_format|) > + let airline#extensions#syntastic#stl_format_err = '%E{[%e(#%fe)]}' + +* syntastic warning > + let airline#extensions#syntastic#warning_symbol = 'W:' +< +* syntastic statusline warning format (see |syntastic_stl_format|) > + let airline#extensions#syntastic#stl_format_warn = '%W{[%w(#%fw)]}' +< +------------------------------------- *airline-tabline* +Note: If you're using the ctrlspace tabline only the option marked with (c) +are supported! + +* enable/disable enhanced tabline. (c) > + let g:airline#extensions#tabline#enabled = 0 + +* enable/disable displaying open splits per tab (only when tabs are opened). > + let g:airline#extensions#tabline#show_splits = 1 + +* switch position of buffers and tabs on splited tabline (c) + (only supported for ctrlspace plugin). > + let g:airline#extensions#tabline#switch_buffers_and_tabs = 0 +< +* enable/disable displaying buffers with a single tab. (c) > + let g:airline#extensions#tabline#show_buffers = 1 + +Note: If you are using neovim (has('tablineat') = 1), then you can click +on the tabline with the left mouse button to switch to that buffer, and +with the middle mouse button to delete that buffer. + +* if you want to show the current active buffer like this: + ---------------------- + buffer buffer ` +> + let g:airline#extensions#tabline#alt_sep = 1 +< Only makes sense, if g:airline_right_sep is not empty. + default: 0 + +* enable/disable displaying tabs, regardless of number. (c) > + let g:airline#extensions#tabline#show_tabs = 1 +< +* configure filename match rules to exclude from the tabline. > + let g:airline#extensions#tabline#excludes = [] + +* enable/disable display preview window buffer in the tabline. > + let g:airline#extensions#tabline#exclude_preview = 1 + +* configure how numbers are displayed in tab mode. > + let g:airline#extensions#tabline#tab_nr_type = 0 " # of splits (default) + let g:airline#extensions#tabline#tab_nr_type = 1 " tab number + let g:airline#extensions#tabline#tab_nr_type = 2 " splits and tab number + let g:airline#extensions#tabline#tabnr_formatter = 'tabnr' + + Note: last option can be used to specify a different formatter for + displaying the numbers. By default tabline/formatter/tabnr.vim is used +< +* enable/disable displaying tab number in tabs mode. > + let g:airline#extensions#tabline#show_tab_nr = 1 + +* enable/disable displaying tab number in tabs mode for ctrlspace. (c) > + let g:airline#extensions#tabline#ctrlspace_show_tab_nr = 0 + +* enable/disable displaying tab type (e.g. [buffers]/[tabs]) > + let g:airline#extensions#tabline#show_tab_type = 1 + +* show buffer label at first position: > + let g:airline#extensions#tabline#buf_label_first = 1 + +* rename label for buffers (default: 'buffers') (c) > + let g:airline#extensions#tabline#buffers_label = 'b' + +* rename label for tabs (default: 'tabs') (c) > + let g:airline#extensions#tabline#tabs_label = 't' + +* change the symbol for skipped tabs/buffers (default '...') > + let g:airline#extensions#tabline#overflow_marker = '…' + +* always show current tabpage/buffer first > + let airline#extensions#tabline#current_first = 1 +< default: 0 + +* enable/disable displaying index of the buffer. + + When enabled, numbers will be displayed in the tabline and mappings will be + exposed to allow you to select a buffer directly. Up to 11 mappings will be + exposed. > + + let g:airline#extensions#tabline#buffer_idx_mode = 1 + nmap 1 AirlineSelectTab1 + nmap 2 AirlineSelectTab2 + nmap 3 AirlineSelectTab3 + nmap 4 AirlineSelectTab4 + nmap 5 AirlineSelectTab5 + nmap 6 AirlineSelectTab6 + nmap 7 AirlineSelectTab7 + nmap 8 AirlineSelectTab8 + nmap 9 AirlineSelectTab9 + nmap - AirlineSelectPrevTab + nmap + AirlineSelectNextTab +< + The AirlineSelectTab mapping handles counts as well, + so one can handle arbirtrarily number of buffers/tabs. + + Note: Mappings will be ignored within "g:airline#extensions#tabline#keymap_ignored_filetypes". + + Note: In buffer_idx_mode these mappings won't change the + current tab, but switch to the buffer visible in that tab. + Use |gt| for switching tabs. + In tabmode, those mappings will switch to the specified tab. + +* define the set of filetypes which are ignored selectTab keymappings > + let g:airline#extensions#tabline#keymap_ignored_filetypes = ['vimfiler', 'nerdtree'] + +* change the display format of the buffer index > + let g:airline#extensions#tabline#buffer_idx_format = { + \ '0': '0 ', + \ '1': '1 ', + \ '2': '2 ', + \ '3': '3 ', + \ '4': '4 ', + \ '5': '5 ', + \ '6': '6 ', + \ '7': '7 ', + \ '8': '8 ', + \ '9': '9 ' + \} +< +* defines the name of a formatter for how buffer names are displayed. (c) > + let g:airline#extensions#tabline#formatter = 'default' + + " here is how you can define a 'foo' formatter: + " create a file in the dir autoload/airline/extensions/tabline/formatters/ + " called foo.vim > + function! airline#extensions#tabline#formatters#foo#format(bufnr, buffers) + return fnamemodify(bufname(a:bufnr), ':t') + endfunction + let g:airline#extensions#tabline#formatter = 'foo' +< + + Note: the following variables are used by the 'default' formatter. + When no disambiguation is needed, both 'unique_tail_improved' and + 'unique_tail' delegate formatting to 'default', so these variables also + control rendering of unique filenames when using these formatters. + + * configure whether buffer numbers should be shown. > + let g:airline#extensions#tabline#buffer_nr_show = 0 +< + * configure how buffer numbers should be formatted with |printf()|. > + let g:airline#extensions#tabline#buffer_nr_format = '%s: ' +< + * configure the formatting of filenames (see |filename-modifiers|). > + let g:airline#extensions#tabline#fnamemod = ':p:.' +< + * configure collapsing parent directories in buffer name. > + let g:airline#extensions#tabline#fnamecollapse = 1 +< + * configure truncating non-active buffer names to specified length. > + let g:airline#extensions#tabline#fnametruncate = 0 + + " The `unique_tail` algorithm will display the tail of the filename, unless + " there is another file of the same name, in which it will display it along + " with the containing parent directory. + let g:airline#extensions#tabline#formatter = 'unique_tail' + + " The following variables are also used by `unique_tail` formatter. + " the meanings are the same as the ones in default formatter. + + let g:airline#extensions#tabline#fnamemod = ':p:.' + let g:airline#extensions#tabline#fnamecollapse = 1 + + " The `unique_tail_improved` - another algorithm, that will smartly uniquify + " buffers names with similar filename, suppressing common parts of paths. + let g:airline#extensions#tabline#formatter = 'unique_tail_improved' +< +* configure the minimum number of buffers needed to show the tabline. > + let g:airline#extensions#tabline#buffer_min_count = 0 +< + Note: this setting only applies to a single tab and when `show_buffers` is + true. + +* configure the minimum number of tabs needed to show the tabline. > + let g:airline#extensions#tabline#tab_min_count = 0 +< + Note: this setting only applies when `show_buffers` is false. + +* configure separators for the tabline only. > + let g:airline#extensions#tabline#left_sep = '' + let g:airline#extensions#tabline#left_alt_sep = '' + let g:airline#extensions#tabline#right_sep = '' + let g:airline#extensions#tabline#right_alt_sep = '' + +* configure whether close button should be shown: > + let g:airline#extensions#tabline#show_close_button = 1 + +* configure symbol used to represent close button > + let g:airline#extensions#tabline#close_symbol = 'X' + +* configure pattern to be ignored on BufAdd autocommand > + " fixes unnecessary redraw, when e.g. opening Gundo window + let airline#extensions#tabline#ignore_bufadd_pat = + \ '\c\vgundo|undotree|vimfiler|tagbar|nerd_tree' + +Note: Enabling this extension will modify 'showtabline' and 'guioptions'. + +* enable Refresh of tabline buffers on |BufAdd| autocommands + (set this to one, if you note 'AirlineTablineRefresh', however, this + won't update airline on |:badd| commands) > + let airline#extensions#tabline#disable_refresh = 0 + +* preserve windows when closing a buffer from the bufferline (neovim specific, + only works with buffers and not real tabs, default: 0) > + let airline#extensions#tabline#middle_click_preserves_windows = 1 +< +------------------------------------- *airline-taboo* +taboo.vim + +* enable/disable taboo.vim integration > + let g:airline#extensions#taboo#enabled = 1 +< +------------------------------------- *airline-tagbar* +tagbar + +* enable/disable tagbar integration > + let g:airline#extensions#tagbar#enabled = 1 +< +* change how tags are displayed (:help tagbar-statusline) > + let g:airline#extensions#tagbar#flags = '' (default) + let g:airline#extensions#tagbar#flags = 'f' + let g:airline#extensions#tagbar#flags = 's' + let g:airline#extensions#tagbar#flags = 'p' +< +------------------------------------- *airline-tmuxline* +tmuxline + +* enable/disable tmuxline integration > + let g:airline#extensions#tmuxline#enabled = 0 +< +* configure which mode colors should be used in tmux statusline > + let airline#extensions#tmuxline#color_template = 'normal' (default) + let airline#extensions#tmuxline#color_template = 'insert' + let airline#extensions#tmuxline#color_template = 'visual' + let airline#extensions#tmuxline#color_template = 'replace' +< +* if specified, setting this option will trigger writing to the file whenever the + airline theme is applied, i.e. when :AirlineTheme is executed and on vim + startup > + airline#extensions#tmuxline#snapshot_file = "~/.tmux-statusline-colors.conf" +< +------------------------------------- *airline-vimagit* +vimagit + +* enable/disable vimagit integration > + let g:airline#extensions#vimagit#enabled = 1 +< +------------------------------------- *airline-vimtex* +vimtex + +Shows the current file's vimtex related info. + +* enable/disable vimtex integration > + let g:airline#extensions#vimtex#enabled = 1 +< +* left and right delimiters (shown only when status string is not empty) > + let g:airline#extensions#vimtex#left = "{" + let g:airline#extensions#vimtex#right = "}" + +State indicators: + +* the current tex file is the main project file (nothing is shown by default) > + let g:airline#extensions#vimtex#main = "" + +* the current tex file is a subfile of the project + and the compilation is set for the main file > + let g:airline#extensions#vimtex#sub_main = "m" + +* the current tex file is a subfile of the project + and the compilation is set for this subfile > + let g:airline#extensions#vimtex#sub_local = "l" + +* single compilation is running > + let g:airline#extensions#vimtex#compiled = "c₁" + +* continuous compilation is running > + let g:airline#extensions#vimtex#continuous = "c" + +* viewer is opened > + let g:airline#extensions#vimtex#viewer = "v" + +------------------------------------- *airline-virtualenv* +virtualenv + +* enable/disable virtualenv integration > + let g:airline#extensions#virtualenv#enabled = 1 +< +------------------------------------- *airline-whitespace* +* enable/disable detection of whitespace errors. > + let g:airline#extensions#whitespace#enabled = 1 +< +* disable detection of whitespace errors. > + " useful to call for particular file types (e.g., in "ftplugin/*") + silent! call airline#extensions#whitespace#disable() +< +* customize the type of mixed indent checking to perform. > + " must be all spaces or all tabs before the first non-whitespace character + let g:airline#extensions#whitespace#mixed_indent_algo = 0 (default) + + " certain number of spaces are allowed after tabs, but not in between + " this algorithm works well for /** */ style comments in a tab-indented file + let g:airline#extensions#whitespace#mixed_indent_algo = 1 + + " spaces are allowed after tabs, but not in between + " this algorithm works well with programming styles that use tabs for + " indentation and spaces for alignment + let g:airline#extensions#whitespace#mixed_indent_algo = 2 +< +* customize the whitespace symbol. > + let g:airline#extensions#whitespace#symbol = '!' +< +* configure which whitespace checks to enable. > + " indent: mixed indent within a line + " long: overlong lines + " trailing: trailing whitespace + " mixed-indent-file: different indentation in different lines + let g:airline#extensions#whitespace#checks = [ 'indent', 'trailing', 'long', 'mixed-indent-file' ] + + " this can also be configured for an individual buffer + let b:airline_whitespace_checks = [ 'indent', 'trailing', 'long', 'mixed-indent-file' ] +< +* configure the maximum number of lines where whitespace checking is enabled. > + let g:airline#extensions#whitespace#max_lines = 20000 +< +* configure whether a message should be displayed. > + let g:airline#extensions#whitespace#show_message = 1 +< +* configure the formatting of the warning messages. > + let g:airline#extensions#whitespace#trailing_format = 'trailing[%s]' + let g:airline#extensions#whitespace#mixed_indent_format = 'mixed-indent[%s]' + let g:airline#extensions#whitespace#long_format = 'long[%s]' + let g:airline#extensions#whitespace#mixed_indent_file_format = 'mix-indent-file[%s]' + +* configure custom trailing whitespace regexp rule > + let g:airline#extensions#whitespace#trailing_regexp = '\s$' + +* configure, which filetypes have special treatment of /* */ comments, + matters for mix-indent-file algorithm: > + let airline#extensions#c_like_langs = ['arduino', 'c', 'cpp', 'cuda', 'go', 'javascript', 'ld', 'php'] +< +* disable whitespace checking for an individual buffer > + " Checking is enabled by default because b:airline_whitespace_disabled + " is by default not defined: + unlet b:airline_whitespace_disabled + + " If b:airline_whitespace_disabled is defined and is non-zero for a buffer, + " then whitespace checking will be disabled for that buffer; for example: + " let b:airline_whitespace_disabled = 1 +< +* disable specific whitespace checks for individual filetypes > + " The global variable g:airline#extensions#whitespace#skip_indent_check_ft + " defines what whitespaces checks to skip per filetype. + " the list can contain any of the available checks, + " (see above at g:airline#extensions#whitespace#checks) + " To disable mixed-indent-file for go files use: + let g:airline#extensions#whitespace#skip_indent_check_ft = {'go': ['mixed-indent-file']} +< +------------------------------------- *airline-windowswap* +vim-windowswap + +* enable/disable vim-windowswap integration > + let g:airline#extensions#windowswap#enabled = 1 + +* set marked window indicator string > + let g:airline#extensions#windowswap#indicator_text = 'WS' +< +------------------------------------- *airline-wordcount* +* enable/disable word counting of the document/visual selection > + let g:airline#extensions#wordcount#enabled = 1 +< +* set list of filetypes for which word counting is enabled: > + " The default value matches filetypes typically used for documentation + " such as markdown and help files. + let g:airline#extensions#wordcount#filetypes = + \ ['help', 'markdown', 'rst', 'org', 'text', 'asciidoc', 'tex', 'mail'] + " Use ['all'] to enable for all filetypes. + +* defines the name of a formatter for word count will be displayed: > + " The default will try to guess LC_NUMERIC and format number accordingly + " e.g. 1,042 in English and 1.042 in German locale + let g:airline#extensions#wordcount#formatter = 'default' + + " here is how you can define a 'foo' formatter: + " create a file in autoload/airline/extensions/wordcount/formatters/ + " called foo.vim, which defines the following function signature: + function! airline#extensions#wordcount#formatters#foo#to_string(wordcount) + return a:wordcount == 0 ? 'NONE' : + \ a:wordcount > 100 ? 'okay' : 'not enough') + endfunction + let g:airline#extensions#wordline#formatter = 'foo' + " The function is passed the word count of the document or visual selection + +* defines how to display the wordcount statistics for the default formatter: > + " Defaults are below. If fmt_short isn't defined, fmt is used. + " '%s' will be substituted by the word count + " fmt_short is displayed when window width is less than 80 + let g:airline#extensions#wordcount#formatter#default#fmt = '%s words' + let g:airline#extensions#wordcount#formatter#default#fmt_short = '%sW' +< +------------------------------------- *airline-xkblayout* + +The vim-xkblayout extension will only be enabled, if the global variable +`g:XkbSwitchLib` is set. It should be set to a C library that will be called +using |libcall()| with the function name `Xkb_Switch_getXkbLayout`. For +details on how to use it, see e.g. + +* enable/disable vim-xkblayout extension > + let g:airline#extensions#xkblayout#enabled = 1 + +* redefine keyboard layout short codes to shown in status > + let g:airline#extensions#xkblayout#short_codes = {'Russian-Phonetic': 'RU', 'ABC': 'EN'} +< + 'RU' instead of system 'Russian-Phonetic', + 'EN' instead of system 'ABC'. + + Default: > + let g:airline#extensions#xkblayout#short_codes = {'2SetKorean': 'KR', 'Chinese': 'CN', 'Japanese': 'JP'} + +* define path to the backend switcher library + Linux (Install https://github.com/ierton/xkb-switch): > + let g:XkbSwitchLib = '/usr/local/lib/libxkbswitch.so' +< + macOS (Install https://github.com/vovkasm/input-source-switcher): > + let g:XkbSwitchLib = '/usr/local/lib/libInputSourceSwitcher.dylib' + +------------------------------------- *airline-xtabline* +xtabline + +This is a simplified and stand-alone version of the original extension. +The bigger version adds fzf commands, session management, tab bookmarks, and +features that you may not need. They both require |vim-airline| anyway. + +Main features and default mappings of this extension are: + +* tab cwd persistance, also across sessions if vim-obsession is being used. + +* buffer filtering in the tabline: only buffers whose path is within the tab + cwd will be shown in the tabline. + +* toggle tabs/buffer view on the tabline, toggle buffer filtering: +> + nmap XTablineToggleTabs + nmap XTablineToggleFiltering + +* reopen last closed tab, restoring its cwd and buffers: +> + nmap tr XTablineReopen ReopenLastTab + +* switch among filtered buffers (accepts count): +> + nmap ]l XTablineNextBuffer + nmap [l XTablinePrevBuffer + +* go to N buffer (a count must be provided): +> + nmap XTablineSelectBuffer + +* alternative command if count is not provided: +> + let g:xtabline_alt_action = "buffer #" + +Note: Make sure to also enable > + :let g:airline_extensions#tabline#show_buffers = 1 +otherwise the tabline might not actually be displayed correctly (see +|airline-tabline|) + +* exclude fugitive logs and files that share part of the real buffer path: +> + let g:xtabline_include_previews = 0 (default 1) + +* activate fast cwd selection mappings: +> + let g:xtabline_cd_commands = 1 (default 0) + +* default mappings for them are: +> + map cdc XTablineCdCurrent + map cdd XTablineCdDown1 + map cd2 XTablineCdDown2 + map cd3 XTablineCdDown3 + map cdh XTablineCdHome + +Note: if you don't use these mappings and change the cwd, the tabline won't +be updated automatically. Either re-enter the tab or press two times. + +* here are some easier mappings to change tab buffer: +> + nnoremap v:count? + \ airline#extensions#tabline#xtabline#next_buffer(v:count) : "\" + nnoremap v:count? + \ airline#extensions#tabline#xtabline#prev_buffer(v:count) : "\" + +------------------------------------- *airline-ycm* +YouCompleteMe + +Shows number of errors and warnings in the current file detected by YCM. + +* enable/disable YCM integration > + let g:airline#extensions#ycm#enabled = 1 + +* set error count prefix > + let g:airline#extensions#ycm#error_symbol = 'E:' + +* set warning count prefix > + let g:airline#extensions#ycm#warning_symbol = 'W:' +< +============================================================================== +ADVANCED CUSTOMIZATION *airline-advanced-customization* + +The defaults will accommodate the mass majority of users with minimal +configuration. However, if you want to reposition sections or contents you can +do so with built-in helper functions, which makes it possible to create +sections in a more declarative style. + +------------------------------------- *airline-parts* +A part is something that contains metadata that eventually gets rendered into +the statusline. You can define parts that contain constant strings or +functions. Defining parts is needed if you want to use features like automatic +insertion of separators or hiding based on window width. + +For example, this is how you would define a part function: > + call airline#parts#define_function('foo', 'GetFooText') +< +Here is how you would define a part that is visible only if the window width +greater than a minimum width. > + call airline#parts#define_minwidth('foo', 50) +< +Parts can be configured to be visible conditionally. > + call airline#parts#define_condition('foo', 'getcwd() =~ "work_dir"') +< +Now add part "foo" to section section airline_section_y: > + let g:airline_section_y = airline#section#create_right(['ffenc','foo']) +< +Note: Part definitions are combinative; e.g. the two examples above modify the +same `foo` part. + +Note: Look at the source code and tests for the full API. + +------------------------------------- *airline-predefined-parts* +Before is a list of parts that are predefined by vim-airline. + +* `mode` displays the current mode +* `iminsert` displays the current insert method +* `paste` displays the paste indicator +* `crypt` displays the crypted indicator +* `spell` displays the spell indicator +* `filetype` displays the file type +* `readonly` displays the read only indicator +* `file` displays the filename and modified indicator +* `path` displays the filename (absolute path) and modifier indicator +* `linenr` displays the current line number +* `maxlinenr` displays the number of lines in the buffer +* `ffenc` displays the file format and encoding + +And the following are defined for their respective extensions: + +`ale_error_count` `ale_warning_count` `branch` `eclim` `hunks` +`languageclient_error_count` `languageclient_warning_count` +`neomake_error_count` `neomake_warning_count` `obsession` `syntastic-warn` +`syntastic-err` `tagbar` `whitespace` `windowswap` `ycm_error_count` +`ycm_warning_count` + +------------------------------------- *airline-accents* +Accents can be defined on any part, like so: > + call airline#parts#define_accent('foo', 'red') +< +This will override the colors of that part by using what is defined in that +particular accent. In the above example, the `red` accent is used, which means +regardless of which section the part is used in, it will have red foreground +colors instead of the section's default foreground color. + +The following accents are defined by default. Themes can define their variants +of the colors, but defaults will be provided if missing. > + bold, italic, red, green, blue, yellow, orange, purple, none +< +The defaults configure the mode and line number parts to be bold, and the +readonly part to be red. + +"none" is special. This can be used, to remove a bold accent from an existing +theme. For example, usually the mode part of the statusline is usually defined +to be bold. However, it can be hard to remove an existing bold accent from the +default configuration. Therefore, you can use the none accent to remove +existing accents, so if you put > + call airline#parts#define_accent('mode', 'none') +the mode section will be set to non-bold font style. + +------------------------------------- *airline-sections* +Once a part is defined, you can use helper functions to generate the +statuslines for each section. For example, to use the part above, we could +define a section like this: > + function! AirlineInit() + let g:airline_section_a = airline#section#create(['mode', ' ', 'foo']) + let g:airline_section_b = airline#section#create_left(['ffenc','file']) + let g:airline_section_c = airline#section#create(['%{getcwd()}']) + endfunction + autocmd User AirlineAfterInit call AirlineInit() +< +This will create a section with the `mode`, followed by a space, and our `foo` +part in section `a`. Section `b` will have two parts with a left-side +separator. And section `c` will contain the current path. You may notice that +the space and cwd are not defined parts. For convenience, if a part of that +key does not exist, it will be inserted as is. The unit tests will be a good +resource for possibilities. + +Note: The use of |User| is important, because most extensions are lazily +loaded, so we must give them a chance to define their parts before we can use +them. Also this autocommand is only triggered, after the airline functions are +actually available on startup. + +Note: The `airline#section#create` function and friends will do its best to +create a section with the appropriate separators, but it only works for +function and text parts. Special 'statusline' items like %f or raw/undefined +parts will not work as it is not possible to inspect their widths/contents +before rendering to the statusline. + +============================================================================== +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. This is +the most powerful way to customize the statusline, and sometimes it may be +easier to go this route than the above methods. + +Every section can have two values. The default value is the global `g:` +variable which is used in the absence of a `w:` value. This makes it very easy +to override only certain parts of the statusline by only defining window-local +variables for a subset of all sections. + +------------------------------------- *add_statusline_func* + *add_inactive_statusline_func* +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 airline#add_statusline_func('MyPlugin') +< +Notice that only the left side of the statusline is overwritten. This means +the right side (the line/column numbers, etc) will be intact. + +To have the function act only on statuslines of inactive functions, use +`airline#add_inactive_statusline_func('MyPlugin')` + +------------------------------------- *remove_statusline_func* +You can also remove a function as well, which is useful for when you want a +temporary override. > + call airline#remove_statusline_func('MyPlugin') +< +============================================================================== +PIPELINE *airline-pipeline* + +Sometimes you want to do more than just use overrides. The statusline funcref +is invoked and passed two arguments. The first of these arguments is the +statusline builder. You can use this to build completely custom statuslines +to your liking. Here is an example: > +> + function! MyPlugin(...) + " first variable is the statusline builder + let builder = a:1 + + " WARNING: the API for the builder is not finalized and may change + call builder.add_section('Normal', '%f') + call builder.add_section('WarningMsg', '%{getcwd()}') + call builder.split() + call builder.add_section('airline_z', '%p%%') + + " tell the core to use the contents of the builder + return 1 + endfunction +< +The above example uses various example highlight groups to demonstrate +that you can use any combination from the loaded colorscheme. However, if +you want colors to change between modes, you should use one of the section +highlight groups, e.g. `airline_a` and `airline_b`. + +The second variable is the context, which is a dictionary containing various +values such as whether the statusline is active or not, and the window number. +> + context = { + 'winnr': 'the window number for the statusline', + 'active': 'whether the window is active or not', + 'bufnr': 'the current buffer for this window', + } +< +------------------------------------- *airline-pipeline-return-codes* +The pipeline accepts various return codes and can be used to determine the +next action. The following are the supported codes: > + 0 the default, continue on with the next funcref + -1 do not modify the statusline + 1 modify the statusline with the current contents of the builder +< +Note: Any value other than 0 will halt the pipeline and prevent the next +funcref from executing. + +============================================================================== +WRITING EXTENSIONS *airline-writing-extensions* + +For contributions into the plugin, here are the following guidelines: + +1. For simple 'filetype' checks, they can be added directly into the +`extensions.vim` file. + +2. Pretty much everything else should live as a separate file under the +`extensions/` directory. + + a. Inside `extensions.vim`, add a check for some variable or command that + is always available (these must be defined in `plugin/`, and _not_ + `autoload/` of the other plugin). If it exists, then initialize the + extension. This ensures that the extension is loaded if and only if the + user has the other plugin installed. Also, a check to + `airline#extensions#foo_plugin#enabled` should be performed to allow the + user to disable it. + + b. Configuration variables for the extension should reside in the + extension, e.g. `g:airline#extensions#foo_plugin#bar_variable`. + +See the source of |example.vim| for documented code of how to write one. +Looking at the other extensions is also a good resource. + +============================================================================== +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. + +For other examples, you can visit the official themes repository at +. It also includes +examples such as |jellybeans.vim| which define colors by extracting highlight +groups from the underlying colorscheme. + +============================================================================== +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 color mode with this: > + set t_Co=256 +< + Also if you enable true color mode in your terminal, make sure it will work + correctly with your terminal. Check if it makes a difference without it: > + set notermguicolors + +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 +< +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. + +Q. Themes are missing +A. Themes have been extracted into the vim-airlines-themes repository. Simply + clone https://github.com/vim-airline/vim-airline-themes and everything + should work again. + +Q. Performance is bad +A. Check the question at the wiki: + https://github.com/vim-airline/vim-airline/wiki/FAQ#i-have-a-performance-problem + +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-2018 Bailey Ling, Christian Brabandt et al. + + vim:tw=78:ts=8:ft=help:norl: diff --git a/.vim/doc/neomake.txt b/.vim/doc/neomake.txt new file mode 100644 index 0000000..77622a3 --- /dev/null +++ b/.vim/doc/neomake.txt @@ -0,0 +1,1052 @@ +*neomake.txt* - asynchronous make for Vim version 7.4+ and Neovim + + ███╗ ██╗███████╗ ██████╗ ███╗ ███╗ █████╗ ██╗ ██╗███████╗ + ████╗ ██║██╔════╝██╔═══██╗████╗ ████║██╔══██╗██║ ██╔╝██╔════╝ + ██╔██╗ ██║█████╗ ██║ ██║██╔████╔██║███████║█████╔╝ █████╗ + ██║╚██╗██║██╔══╝ ██║ ██║██║╚██╔╝██║██╔══██║██╔═██╗ ██╔══╝ + ██║ ╚████║███████╗╚██████╔╝██║ ╚═╝ ██║██║ ██║██║ ██╗███████╗ + ╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ + + Run make tasks (such as linters and build tools) asynchronously. + +============================================================================== +CONTENTS *neomake* + + 1. Introduction ............................... |neomake-introduction| + 2. Commands ....................................... |neomake-commands| + 3. Configuration ............................. |neomake-configuration| + 3.1. Automake ..................................... |neomake-automake| + 4. Functions ..................................... |neomake-functions| + 5. Autocommands/Hooks ............................. |neomake-autocmds| + 6. Frequently Asked Questions (FAQ) .................... |neomake-faq| + +============================================================================== +1. Introduction *neomake-introduction* + +Neomake leverages Neovim's or Vim's |job-control| feature where available to +run programs like syntax checkers asynchronously. Where job control is not +available, it resorts to a synchronous |system()| call, making it possible to +run this plugin in both older Vims and Neovim. +This plugin is heavily inspired by Vim plugins such as Syntastic and +dispatch. + +============================================================================== +2. Commands *neomake-commands* + + *:Neomake* + *:NeomakeFile* +:Neomake [makers] Run a make command with the current file as input. If + no makers are specified, the default makers for the + current |filetype| are used. See + |neomake-configuration| for more on makers. + + *:Neomake!* + *:NeomakeProject* +:Neomake! [makers] Run a make command with no file as input. If no makers + are specified, the default top-level makers will be + used. If no default top-level makers exist, + |'makeprg'| will be used. + + *:NeomakeSh* +:NeomakeSh {command} Run {command} in a shell (according to 'shell'). The + command output will be loaded into the quickfix list + when the job is complete. Example: > + :NeomakeSh find . -name '*.pyc' +< + *:NeomakeSh!* +:NeomakeSh! {command} Same as |:NeomakeSh|, but does not buffer the output. + Example: > + :NeomakeSh! while true; do date; sleep 1; done +< + *:NeomakeInfo* +:NeomakeInfo Display information, meant for debugging and inclusion + in bug reports / help requests. + + *:NeomakeListJobs* +:NeomakeListJobs List all running jobs in the format: > + job_id job_name +< + *:NeomakeCancelJob* +:NeomakeCancelJob {job_id} + Terminate a job identified by its job_id. + + *:NeomakeCancelJobs* +:NeomakeCancelJobs + Terminate all jobs. + + *:NeomakeClean* + *:NeomakeClean!* +:NeomakeClean[!] + Clean signs, highlights etc. for file-mode, or + project-mode (with bang). + +============================================================================== +2.1. Toggle commands *neomake-toggle* + +The following commands enable, disable or toggle Neomake globally, per tab or +per buffer by changing the `disabled` setting, which gets checked when Neomake +gets called via autocommands, e.g. with |neomake-automake| or custom +autocommands. You can still call e.g. |:Neomake| manually, and it will run. +In verbose mode (e.g. when called with |:verbose| (`:verb Neomake`)) the new +status gets displayed. + +*:NeomakeToggle* toggles Neomake globally. +*:NeomakeToggleBuffer* toggles Neomake for the current buffer. +*:NeomakeToggleTab* toggles Neomake for the current tab. + *neomake-disable* +*:NeomakeDisable* disables Neomake globally. +*:NeomakeDisableBuffer* disables Neomake for the current buffer. +*:NeomakeDisableTab* disables Neomake for the current tab. + *neomake-enable* +*:NeomakeEnable* enables Neomake globally. +*:NeomakeEnableBuffer* enables Neomake for the current buffer. +*:NeomakeEnableTab* enables Neomake for the current tab. + +*:NeomakeStatus* displays the current status. + +============================================================================== +3. Configuration *neomake-configuration* + +If you just want an easy way to run |:make| asynchronously, you're all set. +Just set your |'makeprg'| and |'errorformat'| as usual, and run |:Neomake!|. +If you want more, read on. + +3.1 Automaking *neomake-automake* + +To configure Neomake to automatically run on certain events you can use +`neomake#configure#automake()`. + +The first argument can either be a dictionary (mapping autocommand event +names to config dicts for fine grained control), or a string (as a shortcut to +configure certain modes). The 2nd argument is the default delay to use. + +String usage (simple setup):~ + + n: normal mode~ + This uses the |TextChanged| (falling back to |CursorHold|) and |InsertLeave| + events. + + i: insert mode~ + This uses the |TextChangedI| event (falling back to |CursorHoldI|). + + r: "read" mode - when a buffer gets read/open~ + This will hook into the |BufWinEnter|, |FileType| and |FileChangedShellPost| + events. + + w: "write" mode - when a buffer gets written~ + This uses the |BufWritePost| event, with an explicit timeout of 0. + +Examples: > + + " When writing a buffer. + call neomake#configure#automake('w') + " When writing a buffer, and on normal mode changes (after 750ms). + call neomake#configure#automake('nw', 750) + " When reading a buffer (after 1s), and when writing. + call neomake#configure#automake('rw', 1000) + +Dictionary usage (advanced setup):~ +> + call neomake#configure#automake({ + \ 'TextChanged': {}, + \ 'InsertLeave': {}, + \ 'BufWritePost': {'delay': 0}, + \ 'BufWinEnter': {}, + \ }, 500) +< +This will trigger Neomake on |TextChanged|, |InsertLeave|, |BufWritePost| and +|BufWinEnter|, with a delay of 500ms by default, but 0 for |BufWritePost|. + +You could do some advanced setup, based on if your laptop is running on +battery: > + function! MyOnBattery() + return readfile('/sys/class/power_supply/AC/online') == ['0'] + endfunction + if MyOnBattery() + call neomake#configure#automake('w') + else + call neomake#configure#automake('nrw', 1000) + endif +< + *neomake-automake-dynamic-delay* +The automake delay gets adjusted dynamically when timers or make runs get +aborted. This is meant to support the use case where you are doing multiple +changes in succession (e.g. |undo|). +This can be controlled with the experimental `automake.cancelation_delay` +setting, which has to be a list: > + call neomake#configure('automake.cancelation_delay', [0.2, 0.5, 3000]) +> +The first value gets multiplied with the number of restarted timers (before a +make was triggered). +The second value gets multiplied with canceled/restarted make runs. +The sum of those values plus 1 gets multiplied with the original/configured +delay. The third value is used as a maximum. +With the default settings from above this means that given a default delay of +500ms, 7 restarted timer, and 1 restarted make run, it would use a delay of +`(7*0.2 + 1*0.5 + 1) * 500 = 1450`. +The counts for restarted timers and make runs gets reset once a make run +finishes. + +Makers *neomake-makers* +A maker is an object that tells Neomake how to run a job for you. + + *neomake-makers-get_list_entries* +If a maker has a `get_list_entries` function, this gets used to retrieve +entries for the location or quickfix list directly. +The function gets passed a jobinfo (|neomake-object-jobinfo|) object, and +should return a list of entries that will be used to fill the +location/quickfix list: > + let maker = {'name': 'My maker'} + function! maker.get_list_entries(jobinfo) abort + return [ + \ {'text': 'Some error', 'lnum': 1, 'bufnr': a:jobinfo.bufnr}, + \ {'text': 'Some warning', 'type': 'W', 'lnum': 2, 'col': 1, + \ 'length': 5, 'filename': '/path/to/file'}, + \ ] + endfunction +< +The required keys for entries are `text` and `lnum`, and you should set one of +`bufnr` or `filename` (otherwise the entry will not be valid). +The `length` entry in the example is internal to Neomake, and sets the length +for an highlight (see |neomake-highlight|). + + *neomake-job-makers* +Otherwise a maker gets run as a job with a file as input ("file mode", good +for linting), or with no file as input ("project mode", good for building and +project-level tasks). + +Here is a sample maker definition: > + let g:neomake_make_maker = { + \ 'exe': 'make', + \ 'args': ['--build'], + \ 'errorformat': '%f:%l:%c: %m', + \ } + " Use the maker like this: + :Neomake! make +< + *neomake-makers-InitForJob* +You can configure a maker dynamically through a `InitForJob` function, which +gets the jobinfo (|neomake-object-jobinfo|) as its argument. + +This can also be configured as setting: > + function! CustomExe(jobinfo) abort + let self.args = [self.exe] + self.args + let self.exe = 'some_custom_wrapper' + endfunction + call neomake#config#set('ft.python.InitForJob', function('CustomExe')) +< + *neomake-makers-exe* + *neomake-makers-args* +`exe` has to be a string, while `args` can be a list or a string. +If `args` is a list, entries like '%' and '%:p' will be |expand()|ed, and +quoting/escaping is applied automatically. If you want to handle escaping +yourself, `args` should be a string. + +In the above example, the exe argument isn't strictly necessary, since Neomake +uses the name of the maker as the default value for it. If you want it to be +usable on an individual file, you should also include the filetype in the +name: > + let g:neomake_c_lint_maker = { + \ 'exe': 'lint', + \ 'args': ['--option', 'x'], + \ 'errorformat': '%f:%l:%c: %m', + \ } + + " Run this maker for the open file (runs "lint --option x myfile.c"): + :Neomake lint + + " Or run it on the whole project, executing the command from Vim's current + " working directory (runs "lint --option x"): + :Neomake! c_lint +< + *neomake-args-file* +When running a maker on a file with |:Neomake|, you may want to control where +in the `args` list the file's path will appear. To do this, insert '%t' in +the `args` list and use `append_file=0`: > + let g:neomake_c_lint_maker = { + \ 'exe': 'lint', + \ 'args': ['%t', '--option', 'x'], + \ 'append_file': 0, + \ 'errorformat': '%f:%l:%c: %m', + \ } +< +This will cause "lint /path/to/file.c --option x" to be run instead of +"lint --option x /path/to/file.c". + +`%t` gets replaced with the absolute path to the file (handling any temporary +file). + + *neomake-makers-processing* +A job maker's output gets processed in two ways: +1. through a maker's `process_output` function, or +2. via its `errorformat` (together with `mapexpr` and `postprocess`). + + *neomake-makers-process_output* +If a maker has a `process_output` function, this gets used to retrieve +entries for the location or quickfix list for the job's output directly. + +The function gets called with a `context` dictionary, with the following +entries: + - `output`: a list of lines + - `source`: the source of the output (`stderr`, `stdout`) + - `jobinfo`: the jobinfo object, see |neomake-object-jobinfo| +It should return a list of entries (dictionaries), where `text` and `lnum` +are required. `bufnr` defaults to the jobs's buffer. + +Using this method skips the processing based on `errorformat` (including +`mapexpr` and `postprocess`). + +See |neomake-makers-process_json| below for handling JSON output. + + *neomake-makers-process_json* +A maker's `process_json` function gets a |dict| with parsed JSON directly, +handling the JSON parsing and any errors before. + +The function gets called with a `context` dictionary, containing the following +entries: + - `json`: a dictionary with the parsed JSON + - `source`: the source of the output (`stderr`, `stdout`) + - `jobinfo`: the jobinfo object, see |neomake-object-jobinfo| +It should return a list of entries (dictionaries), where `text` and `lnum` +are required. `bufnr` defaults to the jobs's buffer. + +Using this method skips the processing based on `errorformat` (including +`mapexpr` and `postprocess`). + + *neomake-makers-filter_output* +A maker's `filter_output` function can filter any output before it gets +processed further. + +The function gets called with two arguments: the list of lines (to be modified +in place) and a context dictionary with the following entries: + - `source`: the source of the output (`stderr`, `stdout`) + - `jobinfo`: the jobinfo object, see |neomake-object-jobinfo| + + *neomake-makers-mapexpr* +You can define two optional properties on a maker object to process its +output: `mapexpr` is applied to the maker's output before any processing, and +`postprocess` is applied to each of the quickfix or location list entries. + +The `mapexpr` property gets passed directly into |map()| as the `expr` +argument: > + call map(lines, maker.mapexpr) + + "printf('[%s] %s', neomake_output_source, v:val)" +< + *neomake-makers-postprocess* +The `postprocess` property is a function (or list of functions) that get(s) +called for each entry in the location or quickfix list. +It allows to change entries there or remove them by setting the `valid` entry +to `-1`. + +Example: make all entries a warning where `nr` is in the range of 100-199: > + function PostprocessLintMaker(entry) + if a:entry.nr >= 100 && a:entry.nr < 200 + let a:entry.type = 'W' + endif + endfunction + let g:neomake_ft_lint_maker = { + \ 'exe': 'lint', + \ 'args': ['--option', 'x'], + \ 'errorformat': '%f:%l:%c:%n: %m', + \ 'postprocess': function('PostprocessLintMaker') + \ } +< +Example: remove some entry for a specific maker (using |expr-lambda|): > + let g:neomake_asciidoc_asciidoc_postprocess = { + \ entry -> entry.text =~# 'illegal system attribute name: font-style' + \ ? extend(entry, {'valid': -1}) + \ : entry} +< + +Builtin postprocessors are `neomake#postprocess#compress_whitespace`, which +fixes whitespace issues (which is useful with multiline error messages), +and `neomake#postprocess#generic_length`, which adds a length property (used +for highlights |neomake-highlight|) for entries, when the message refers to an +identifier at the entry's column. +See `neomake#makers#ft#text#PostprocessWritegood` for an example. + +Entries can be selectively removed in post-processing by setting its "valid" +property to `-1`. This removal will happen even if `remove_invalid_entries` +is disabled. This feature is meant for conditional removals and a simpler way +for end users to filter list entries. Makers should handle removals through +|errorformat| using '%-G' to remove items that should never appear in the +error list. + + *neomake-makers-buffer_output* +Default: 1 +By default Neomake will only process the output from makers when either the +output type changes (from stderr to stdout or vice versa), or at the end of +the job. + +If you have a maker that is expected to run longer, and you want to get +feedback as early as possible, you can set this to `0`. + +You can override this for a maker using e.g.: > + let g:neomake_ft_test_maker_buffer_output = 0 +< +Your results will appear earlier, but if the |'errorformat'| is meant to parse +multiline output this will likely cause issues (depending on how the maker +flushes its output). + +To change the default for all makers use: > + call neomake#config#set('maker_defaults.buffer_output', 0) +< + *neomake-makers-remove_invalid_entries* +Default: 0 +This option filters invalid entries from makers from the location/quickfix +list (i.e. entries that do not match the |'errorformat'|, and that would show +up with a `||` prefix in the location/quickfix list): > + let g:neomake_ft_maker_remove_invalid_entries = 1 +< +NOTE: the default for this is 0, because unhandled/unexpected output might be +useful, e.g. when the program displays some error. +Makers should handle this properly through |errorformat|, e.g. by using '%-G' +(see |efm-ignore| and |neomake-faq-errorformat|). + +To change the default for all makers use: > + call neomake#config#set('maker_defaults.remove_invalid_entries, 1) +< + *neomake-makers-cwd* +The working directory of a maker defaults to the current working directory +of the make run (|getcwd()|). +The `cwd` property overrides this, and gets expanded in the context of the +current buffer. Special buffers (like fugitive blobs) get handled for values +starting with `%:` (typically used in this context), falling back to +|expand()|. See |filename-modifiers|. + > +Example: change to the buffer's directory: > + let g:neomake_my_example_maker = { + \ 'exe': 'pwd', + \ 'cwd': '%:p:h' + \ } +< + *neomake-makers-tempfile_enabled* +Default: 1 +This will pass a temporary file with the buffer's contents to the maker, in +case the buffer is not readable, modified, or has no filename. +A maker can specify the temporary file's name through the `tempfile_name` +property, and you can set it through the |neomake-makers-InitForJob| callback +(for advanced usage). +Otherwise it gets generated based on the original filename/filetype, and +falls back to using |tempname()|. + +You can configure this per buffer or maker as usual, e.g.: > + let g:neomake___tempfile_enabled = 0 +< + *neomake-makers-tempfile_dir* +Default: unset +You can configure the directory to use for temporary files (see +|neomake-makers-tempfile_enabled|). + +The default behavior is to use the same directory as the original file, so +that any config files (e.g. `setup.cfg` for Python tools) take effect. + +You can configure this per buffer or maker as usual, e.g.: > + let g:neomake___tempfile_dir = '/tmp/custom' +< +The value gets expanded (via `neomake#utils#ExpandArgs`), which allows for +the following to use the original file's directory structure (`%:p:h`): > + let g:neomake_tempfile_dir = '/tmp/custom%:p:h' +< + *neomake-makers-output_stream* +Default: "both" ("stdout", "stderr", "both") +The `output_stream` setting specifies what stream gets used for output from +the maker. +Any output on a stream not configured here gets reported as unexpected output. + + *neomake-makers-supports_stdin* +Default: 0 +With `supports_stdin = 1` a maker indicates that it can use stdin instead of a +temporary file. By default "-" is then used for the filename. + +`supports_stdin` can be a dict function on the maker, which will get the +current jobinfo as its argument, and should return 1 or 0. +This function can change `self.args`, which is useful to append options like +e.g. "['--stdin-display-name', '%:p']". +You can also change `self.tempfile_name` therein. +It can be useful to change the current working directory for the maker here, +e.g. when it does not use its `--stdin-display-name` (or similar) option +to look for its config. Use the jobinfo's `cd` method for this: > + function! maker.supports_stdin(jobinfo) abort + let self.args += ['--stdin-display-name', '%:.'] + call a:jobinfo.cd('%:h') + return 1 + endfunction +< + *neomake-makers-uses_stdin* +Default: 0 +`uses_stdin = 1` can be used to always use stdin for file arguments, +regardless of if a temporary file / stdin is required to be used. +It uses "-" as the default for "tempfile_name". + +Global Options *neomake-options* + +*g:neomake__maker* +*g:neomake___maker* +Define a new filetype or project-level maker. See |neomake-makers|. + + *neomake-makers-properties* +*g:neomake__* +*g:neomake___* +*b:neomake__* +*b:neomake___* +Configure properties for a maker where is one of `exe`, `args`, +`errorformat`, `buffer_output`, `remove_invalid_entries`, `append_file`, +or `supports_stdin`. + +This can also be set per buffer, e.g.: > + let g:neomake_javascript_jshint_exe = './myjshint' + let b:neomake_javascript_jshint_exe = './myotherjshint' +< + +The global defaults can be configured using `g:neomake_`, i.e. +*g:neomake_remove_invalid_entries* to remove invalid entries from the quickfix +/ location list (|neomake-makers-remove_invalid_entries|), unless explicitly +provided by the maker or overridden by your global/buffer setting. + +The internal defaults are: > + let defaults = { + \ 'exe': maker.name, + \ 'args': [], + \ 'errorformat': &errorformat, + \ 'buffer_output': 0, + \ 'remove_invalid_entries': 0 + \ } +< + +*g:neomake__enabled_makers* +*b:neomake__enabled_makers* +This setting will tell Neomake which makers to use by default for the given +filetype `` (when called without a maker as an argument, i.e. |:Neomake|). + +The default for this setting is the return value of the function +`neomake#makers#ft##EnabledMakers`. For Python this is defined in +`./autoload/neomake/makers/ft/python.vim`, and might return: > + ['python', 'frosted', 'pylama'] +< +This setting can also be defined per buffer, so the following snippet can be +used to configure a custom set of makers from your vimrc: > + let g:neomake_python_enabled_makers = ['pep8', 'pylint'] + augroup my_custom_maker + au! + au Filetype custom.py let b:neomake_python_enabled_makers = ['flake8'] + augroup END +< +Please refer to |autocmd-patterns| for help on defining the pattern +(`custom.py`) in this case. + +*g:neomake_enabled_makers* +*b:neomake_enabled_makers* +This setting will tell Neomake which makers to use by default when not +operating on a single file, or when no makers are defined for the filetype of +the current buffer. This effectively defaults to: > + let g:neomake_enabled_makers = ['makeprg'] +< +*g:neomake_open_list* +*b:neomake_open_list* +This setting will open the |location-list| or |quickfix| list (depending on +whether it is operating on a file) when adding entries. A value of 2 will +preserve the cursor position when the |location-list| or |quickfix| window is +opened. Defaults to 0. + +*g:neomake_list_height* +*b:neomake_list_height* +The maximum height of the |location-list| or |quickfix| list window opened by +Neomake. If there are fewer entries it will use that instead. +Defaults to 10. + +*g:neomake_echo_current_error* +This setting will |:echo| the error for the line your cursor is on, if any. +It uses a timer (if |timers| are available), and |CursorHold|/|CursorHoldI| +otherwise. +Defaults to 1. + +*g:neomake_virtualtext_current_error* +Use Neovim's virtualtext API to display the error for the current line next +to the text. This is experimental, and uses the same mechanism (timer) +as |g:neomake_echo_current_error|. +Defaults to 1 (only available on Neovim 0.3.2+). + +*g:neomake_virtualtext_prefix* +The prefix used with |g:neomake_virtualtext_current_error|. +Defaults to "❯ ". + +*g:neomake_cursormoved_delay* +Delay (in ms) for the timer used to echo the current error with +|g:neomake_echo_current_error|. +Defaults to 100. + +*g:neomake_serialize* +Setting this to 1 tells Neomake to run each enabled maker one after the other. +This is a good way to ensure messages don't get mixed up. This setting is +implied with non-async Vim versions. + +*g:neomake_serialize_abort_on_error* +Setting this to 1 tells Neomake to abort after the first error status is +encountered. This setting only works when |g:neomake_serialize| is on. + +*g:neomake_verbose* +Controls how verbose Neomake should be. Neomake log levels are as follows: + 0 - Errors only + 1 - Quiet message + 2 - Loud message (may log multiple messages at once, making the screen + shift momentarily) + 3 - Debug information (all messages). + This will also add time information to messages. +Each log level includes all the levels before it. + +Defaults to 1. + +|'verbose'| gets added to this setting, so you can use |:verbose| to increase +the verbosity temporarily: > + :3verb Neomake +< +*g:neomake_logfile* +Setting this to a file path will write all messages (regardless of the level +configured through |g:neomake_verbose|) into it. +This is useful for debugging/hacking, and when reporting issues. +It requires Vim 7.4.503+ (or Neovim) to work properly, otherwise it will not +append, but overwrite the file with each message. + + *neomake-signs* +*g:neomake_place_signs* +This setting enables the placement of signs next to items from the location +and quickfix list (i.e. errors/warnings etc recognized from the +|'errorformat'|). Defaults to 1. + +*g:neomake_error_sign* +*g:neomake_warning_sign* +*g:neomake_info_sign* +*g:neomake_message_sign* +These options allow you to control the appearance of the signs that are +placed into the |signs| column next to lines with messages. +These are dictionaries that represent the parameters provided by +|:sign-define|. Here is an example definition: > + let g:neomake_error_sign = { + \ 'text': 'E>', + \ 'texthl': 'ErrorMsg', + \ } +< +See the |:highlight| command to list the highlight groups available to you or +create new ones. + +Neomake uses the following defaults: > + + let g:neomake_error_sign = { + \ 'text': '✖', + \ 'texthl': 'NeomakeErrorSign', + \ } + let g:neomake_warning_sign = { + \ 'text': '‼', + \ 'texthl': 'NeomakeWarningSign', + \ } + let g:neomake_message_sign = { + \ 'text': '➤', + \ 'texthl': 'NeomakeMessageSign', + \ } + let g:neomake_info_sign = { + \ 'text': 'ℹ', + \ 'texthl': 'NeomakeInfoSign' + \ } +< + +Default |highlight-groups| are created with those names, but only if they do +not exist already, which allows you to customize them. This should typically +be done through the |ColorScheme| autoevent, which applies it after any color +scheme: > + + augroup my_neomake_signs + au! + autocmd ColorScheme * + \ hi NeomakeErrorSign ctermfg=white | + \ hi NeomakeWarningSign ctermfg=yellow + augroup END +< +You can use `neomake#utils#GetHighlight` to get e.g. the "bg" from +"SignColumn". See `neomake#signs#DefineHighlights` where this is used. + + *neomake-highlight* +*g:neomake_highlight_columns* +This setting enables highlighting of columns for items from the location and +quickfix list. Defaults to 1. + +*g:neomake_highlight_lines* +This setting enables highlighting of lines for items from the location and +quickfix list. Defaults to 0. + +If both |g:neomake_highlight_columns| and |g:neomake_highlight_lines| are +enabled, items with column information are highlighted using the column. + +The following highlighting groups are used: + - NeomakeError: links to "SpellBad" (|hl-SpellBad|) + - NeomakeWarning: links to "SpellCap" (|hl-SpellCap|) + - NeomakeInfo: links to "NeomakeWarning" + - NeomakeMessage: links to "NeomakeWarning" + +You can define them yourself: > + + augroup my_neomake_highlights + au! + autocmd ColorScheme * + \ highlight NeomakeError … | + \ highlight NeomakeWarning … + guisp=White + augroup END +> + +*g:airline#extensions#neomake#enabled* +Shows warning and error counts returned by |neomake#statusline#LoclistCounts| +in the warning and error sections of the vim-airline |'statusline'|. Defaults +to 1. + +============================================================================== +4. Functions *neomake-functions* + +This list is non-exhaustive at the moment, but you may find some of these +functions useful. + +*neomake#Make* (options) +This is the main entrypoint to Neomake, used by the |:Neomake| (and +|:Neomake!|) command. + +`options` is a dictionary, and might include: +- `file_mode`: 1 if the makers should get run against a single file (typically + used for linting). Default: 1. +- `enabled_makers`: the makers to use (list). Default: uses configuration. + +Returns: a list of jobinfo objects (|neomake-object-jobinfo|). + +Deprecated interface (with different return value)~ +The old and deprecated API will accept the following arguments instead of the +`options` dict: filemode, enabled_makers[, exit_callback]. +The `exit_callback` (which should get replaced by using the +|NeomakeJobFinished| or |NeomakeFinished| hooks) gets the following dictionary +as its sole argument: > + { 'status': , + \ 'name': , + \ 'has_next': <1 if another maker follows, 0 otherwise> } +Returns: a list of job ids. + +*neomake#Sh* (command[, callback]) +This function is called by the |:NeomakeSh| command. It runs the specified +shell `command` according to 'shell'. |neomake#Sh| returns the single job id +that was created (-1 on Vim without asynchronous support); you can potentially +cancel this job with |neomake#CancelJob|. + +It also accepts a second, optional callback argument that is called when +the command exits. The callback is given the following dictionary as its +sole argument: > + { 'status': , + \ 'name': 'sh: ', + \ 'has_next': 0 } +< +The callback will receive a `jobinfo` object dict as `self` +(|dict-functions|). + +*neomake#ListJobs* +Invoked via |:NeomakeListJobs|. Echoes a list of running jobs in the format +(job_id, job_name). + +*neomake#CancelJob* +Invoked via |:NeomakeCancelJob|. Terminate a job identified by its job_id. +Example: > + let job_id = neomake#Sh("bash -c 'while true; do sleep 1; done'") + call neomake#CancelJob(job_id) + +*neomake#signs#RedefineErrorSign* +*neomake#signs#RedefineWarningSign* +These functions define the error sign and the warning sign respectively. They +optionally take a dictionary in the same format as |g:neomake_error_sign|. If +no such dictionary is provided, the default values will be used. These +functions may be useful if somehow |:Neomake| is being invoked before you +define |g:neomake_error_sign|. > + let g:neomake_error_sign = {'text': 'D:'} + call neomake#signs#RedefineErrorSign() +< + *neomake-statusline* +The main function for statusline integration is `neomake#statusline#get()`, +which caches the information retrieved from `neomake#statusline#get_status()`. + +*neomake#statusline#get()* [options] +The function requires the buffer number as first argument, and an optional +dictionary. You might want to use |g:actual_curbuf| for bufnr, if calling +`neomake#status#get()` from a statusline expression, but then highlights are +not evaluated, and you typically want to use this in a statusline function +(`'set statusline=%!MyStatusLine()'`) instead. + +Returns a string for a 'statusline'. + +The optional argument is a dictionary of options (see below). + +The following example creates a custom 'statusline' function, where `a:active` +may reflect if the window is the current one (implementation not provided): > + let neomake_status_str = neomake#statusline#get(bufnr, { + \ 'format_running': '… ({{running_job_names}})', + \ 'format_loclist_ok': + \ (a:active ? '%#NeomakeStatusGood#' : '%*').'✓', + \ 'format_quickfix_ok': '', + \ 'format_quickfix_issues': (a:active ? '%s' : ''), + \ 'format_status': '%%(%s' + \ .(a:active ? '%%#StatColorHi2#' : '%%*') + \ .'%%)', + \ }) +< +A simpler example: > + let neomake_status_str = neomake#statusline#get(bufnr, { + \ 'format_running': '… ({{running_job_names}})', + \ 'format_loclist_ok': '✓', + \ 'format_quickfix_ok': '', + \ 'format_quickfix_issues': '%s', + \ }) +< +You can use the following options: + +For location list items:~ + - format_loclist_unknown: format for when the status for location list + issues is unknown, i.e. Neomake was not run on the current buffer. + Default: `'?'` + - format_loclist_ok: format for when there are no location list issues. + Default: `'%#NeomakeStatusGood#✓%#NeomakeStatReset#'` (a checkmark using + the NeomakeStatusGood highlight group). + - format_loclist_type_X: format for location list issues of type X + (E, W, I, …). + Default: looks up "format_loclist_type_default" first, and then uses + `' {{type}}:{{count}} '`, with an existing highlight group as prefix + ("NeomakeStatColorTypeX" or "NeomakeStatColorDefault"), e.g. + - format_loclist_type_default: default format for location list issues if + "format_loclist_type_X" is not defined. + - format_loclist_issues: format for wrapping all location list issues. + Default: `'%s%%#NeomakeStatReset'` (used with |printf()|). + +For quickfix list items:~ + - format_quickfix_ok: format for no quickfix issues. + Default: `''` + - format_quickfix_type_X: format for quickfix list issues of type X + (E, W, I, …). + Default: `' {{type}}:{{count}} '` + Default: looks up "format_quickfix_type_default" first, and then uses + `' Q{{type}}:{{count}} '`, with an existing highlight group as prefix + ("NeomakeStatColorQuickfixTypeX" or "NeomakeStatColorQuickfixDefault"). + - format_quickfix_issues: format for wrapping all quickfix list issues. + You can use an empty string to skip displaying quickfix issues, which can + be useful for non-current windows. + Default: `'%s%%#NeomakeStatReset'` (used with |printf()|). + +Status related:~ + - format_status: used to wrap the whole status. + This is a |printf()| format string, where `%s` gets replaced with the + whole status (and any literal/non-printf `%` needs to be escaped as `%%`). + Default: not used / `'%s'` + - format_status_disabled: used to wrap the whole status when disabled. + This is a |printf()| format string, where `%s` gets replaced with the + whole status (and any literal/non-printf `%` needs to be escaped as `%%`). + Default: `'{{disabled_info}} %s'` + - format_disabled_info: The `disabled_info` placeholder from the + "format_status_disabled" argument. There `disabled_scope` placeholder is + available here. Default: `'{{disabled_scope}}-'` + - format_status_enabled: used to wrap the whole status when enabled. + This is a |printf()| format string, where `%s` gets replaced with the + whole status (and any literal/non-printf `%` needs to be escaped as `%%`). + Default: not used / `'%s'` + +General:~ + - format_lists: used to format the overall location list and quickfix list + sections (before format_status). + `{{lists_sep}}` is empty ("") with only a single list section, + and defaults to " " if both are not empty. + Default: `'{{loclist}}{{lists_sep}}{{quickfix}}'` + +Running jobs:~ + If any jobs are currently running in file or project mode, those get + displayed by default in the loclist or quickfix section. The following + options control its appearance: + + - format_running: used in case there are jobs running. Use 0 (as a number) + to disable this, but fall through to the last known status. + Default: `… ({{running_job_names}})` + - format_running_job_file: Wrap the running job name for file-level makers. + Default: not used / `'%s'` + - format_running_job_project: Wrap the running job name for project makers. + Default: `'%s!'`. + - running_jobs_separator: Separator for formatted running job names. + Default: `', '`. + +Advanced options:~ + + - use_highlights_with_defaults: include highlight attributes with default + options (e.g. "%#NeomakeStatusGood#" with "format_loclist_ok"). + Default: 1 + +You can use the following format placeholders: + - `{{running_job_names}}}`: comma-separated list of running jobs (typically + their maker names). + This gets built using `format_running_job_file`, + `format_running_job_project`, and `running_jobs_separator`. + - `{{disabled_scope}}`: When manually overriden, the scope of the disabling. + One of "b", "t", "g". + +*neomake#statusline#LoclistStatus* +*neomake#statusline#QflistStatus* +These functions return text for your |'statusline'|. They each take an +optional first argument, which is the prefix text that will be shown if errors +or warnings exist. Example usage: > + set statusline+=\ %#ErrorMsg#%{neomake#statusline#QflistStatus('qf:\ ')} +< +The result of this will be something like 'qf: E:1, W:2' if there are errors +or warnings and the empty string otherwise. + +*neomake#statusline#LoclistCounts* +*neomake#statusline#QflistCounts* +These functions get the counts of errors by error type for the |location-list| +and the |quickfix| respectively. The return value is something like this: > + {'E': 2, 'W': 1, 'x': 5} + + function! MyOnNeomakeJobFinished() abort + let context = g:neomake_hook_context + if context.jobinfo.exit_code != 0 + echom printf('The job for maker %s exited non-zero: %s', + \ context.jobinfo.maker.name, context.jobinfo.exit_code) + endif + endfunction + augroup my_neomake_hooks + au! + autocmd User NeomakeJobFinished call MyOnNeomakeJobFinished() + augroup END +< +Note: you might want to use |autocmd-nested| (in particular when handling +opening of the location/quickfix window yourself, so that other autocommands +get triggered, e.g. |WinEnter| for the qf window that gets opened/created): > + augroup my_neomake_hooks + au! + autocmd User NeomakeFinished nested call MyOnNeomakeFinished() + augroup END +< + *NeomakeJobInit* +The NeomakeJobInit autocommand gets triggered before a job gets started. +You can use this to change the command (`jobinfo.argv`). +Context: + - `g:neomake_hook_context.jobinfo`: see |neomake-object-jobinfo|. + The `argv` entry contains the command to run (executable and arguments). + This can be a list or a string, depending on the maker and the job backend. + + *NeomakeJobStarted* +The NeomakeJobStarted autocommand gets triggered after a job started. +Context: + - `g:neomake_hook_context.jobinfo`: see |neomake-object-jobinfo|. + + *NeomakeCountsChanged* +The NeomakeCountsChanged user autocommand gets triggered after counts for the +location/quickfix list have changed, either because the list got reset or new +entries got added. +You can use this to e.g. update the statusline. +Context: + - `g:neomake_hook_context.reset`: 1 if the list got reset, 0 otherwise. + - `g:neomake_hook_context.jobinfo`: when the list is not reset; see + |neomake-object-jobinfo|. + + *NeomakeFinished* +The NeomakeFinished user autocommand gets triggered after all jobs of a build +have finished. +You can use this to e.g. close an empty location or quickfix window. +Context: + - `g:neomake_hook_context`: a dictionary with the following keys: + - `make_info`: make info, which contains all of the entries from below, + plus some more. (The object itself is not documented yet) + - `make_id`: the numeric ID of the make run. + - `options`: a dictionary (related to |neomake-object-jobinfo|): + - `file_mode` + - `bufnr` + - `ft` + - `finished_jobs`: a list of job infos (|neomake-object-jobinfo|) for the + finished jobs. + + *NeomakeJobFinished* +The NeomakeJobFinished autocommand gets triggered after a single job has +finished. +Context: + - `g:neomake_hook_context.jobinfo`: see |neomake-object-jobinfo|; `exit_code` + is available there. + +============================================================================== +5. Objects *neomake-objects* + + *neomake-object-jobinfo* +The `jobinfo` dictionary contains information about a job. +(this is experimental, so not everything is documented) + - `maker`: a dictionary containing information about the maker that ran + this job. See |neomake-object-maker|. + - `file_mode`: 1 for file mode, 0 for project/directory mode. + - `make_id`: the ID of the make run + - `get_pid()`: get the process ID (PID) of the job (-1 if not running + anymore). + + - Relevant for file mode: + - `bufnr`: the number of the buffer. + - `ft`: the filetype. + *neomake-object-maker* +The `maker` dictionary contains the following keys: +(this is experimental, so not everything is documented) + - `name`: name of the maker. + - `exe`: executable of the maker. + +============================================================================== +6. Frequently Asked Questions (FAQ) *neomake-faq* + +6.1 Other plugins overwrite the signs placed by Neomake~ + +When using quickfixsigns (https://github.com/tomtom/quickfixsigns_vim/) it +will also place signs for errors and warnings in the quickfix/location list, +and conflicts therefore with Neomake's own signs (see +|g:neomake_place_signs|). You can make quickfixsigns respect Neomake's signs +using this option: > + + let g:quickfixsigns_protect_sign_rx = '^neomake_' +< +6.2 How to configure the makers to be used?~ + +See |g:neomake__enabled_makers| (press `` on the link to go there). + + *neomake-faq-errorformat* +6.3 How to develop/debug the errorformat setting?~ + +Here are some tips to develop the 'errorformat' setting for makers: + +1. Get the output from the linter into a buffer (see also |:read!|). +2. Set the errorformat, e.g. `:let &efm = '%E%f:%l:%c\,%n: %m,%Z%m`. + See |errorformat| for documentation of the format itself. +3. Load the buffer into the quickfix list: `:cgetbuffer`. +4. Use |:copen| to open the quickfix window, and/or `:echo getqflist()` to + display the raw data. +5. Pay attention to the "`valid`" property of entries. + +vim: ft=help tw=78 isk+=<,>,\:,-,' diff --git a/.vim/doc/tags b/.vim/doc/tags new file mode 100644 index 0000000..e649efc --- /dev/null +++ b/.vim/doc/tags @@ -0,0 +1,262 @@ +:AirlineExtensions airline.txt /*:AirlineExtensions* +:AirlineRefresh airline.txt /*:AirlineRefresh* +:AirlineTheme airline.txt /*:AirlineTheme* +:AirlineToggle airline.txt /*:AirlineToggle* +:AirlineToggleWhitespace airline.txt /*:AirlineToggleWhitespace* +:Neomake neomake.txt /*:Neomake* +:Neomake! neomake.txt /*:Neomake!* +:NeomakeCancelJob neomake.txt /*:NeomakeCancelJob* +:NeomakeCancelJobs neomake.txt /*:NeomakeCancelJobs* +:NeomakeClean neomake.txt /*:NeomakeClean* +:NeomakeClean! neomake.txt /*:NeomakeClean!* +:NeomakeDisable neomake.txt /*:NeomakeDisable* +:NeomakeDisableBuffer neomake.txt /*:NeomakeDisableBuffer* +:NeomakeDisableTab neomake.txt /*:NeomakeDisableTab* +:NeomakeEnable neomake.txt /*:NeomakeEnable* +:NeomakeEnableBuffer neomake.txt /*:NeomakeEnableBuffer* +:NeomakeEnableTab neomake.txt /*:NeomakeEnableTab* +:NeomakeFile neomake.txt /*:NeomakeFile* +:NeomakeInfo neomake.txt /*:NeomakeInfo* +:NeomakeListJobs neomake.txt /*:NeomakeListJobs* +:NeomakeProject neomake.txt /*:NeomakeProject* +:NeomakeSh neomake.txt /*:NeomakeSh* +:NeomakeSh! neomake.txt /*:NeomakeSh!* +:NeomakeStatus neomake.txt /*:NeomakeStatus* +:NeomakeToggle neomake.txt /*:NeomakeToggle* +:NeomakeToggleBuffer neomake.txt /*:NeomakeToggleBuffer* +:NeomakeToggleTab neomake.txt /*:NeomakeToggleTab* +:VdebugEval! Vdebug.txt /*:VdebugEval!* +NeomakeCountsChanged neomake.txt /*NeomakeCountsChanged* +NeomakeFinished neomake.txt /*NeomakeFinished* +NeomakeJobFinished neomake.txt /*NeomakeJobFinished* +NeomakeJobInit neomake.txt /*NeomakeJobInit* +NeomakeJobStarted neomake.txt /*NeomakeJobStarted* +Vdebug Vdebug.txt /*Vdebug* +Vdebug-contents Vdebug.txt /*Vdebug-contents* +VdebugAcknowledgements Vdebug.txt /*VdebugAcknowledgements* +VdebugBreakpointWindow Vdebug.txt /*VdebugBreakpointWindow* +VdebugBreakpoints Vdebug.txt /*VdebugBreakpoints* +VdebugCommandDetach Vdebug.txt /*VdebugCommandDetach* +VdebugCommandRun Vdebug.txt /*VdebugCommandRun* +VdebugCommandRunToCursor Vdebug.txt /*VdebugCommandRunToCursor* +VdebugCommandStepIn Vdebug.txt /*VdebugCommandStepIn* +VdebugCommandStepOut Vdebug.txt /*VdebugCommandStepOut* +VdebugCommandStepOver Vdebug.txt /*VdebugCommandStepOver* +VdebugCommandStop Vdebug.txt /*VdebugCommandStop* +VdebugCommands Vdebug.txt /*VdebugCommands* +VdebugEval Vdebug.txt /*VdebugEval* +VdebugEvalExpression Vdebug.txt /*VdebugEvalExpression* +VdebugEvalHighlighted Vdebug.txt /*VdebugEvalHighlighted* +VdebugEvalUnderCursor Vdebug.txt /*VdebugEvalUnderCursor* +VdebugFeatures Vdebug.txt /*VdebugFeatures* +VdebugIDEKey Vdebug.txt /*VdebugIDEKey* +VdebugInstallation Vdebug.txt /*VdebugInstallation* +VdebugIntro Vdebug.txt /*VdebugIntro* +VdebugIntroDBGP Vdebug.txt /*VdebugIntroDBGP* +VdebugIntroDebugging Vdebug.txt /*VdebugIntroDebugging* +VdebugIntroLanguages Vdebug.txt /*VdebugIntroLanguages* +VdebugKeys Vdebug.txt /*VdebugKeys* +VdebugLogWindow Vdebug.txt /*VdebugLogWindow* +VdebugOpt Vdebug.txt /*VdebugOpt* +VdebugOptionList Vdebug.txt /*VdebugOptionList* +VdebugOptions Vdebug.txt /*VdebugOptions* +VdebugOptions-break_on_open Vdebug.txt /*VdebugOptions-break_on_open* +VdebugOptions-continuous_mode Vdebug.txt /*VdebugOptions-continuous_mode* +VdebugOptions-debug_file Vdebug.txt /*VdebugOptions-debug_file* +VdebugOptions-debug_file_level Vdebug.txt /*VdebugOptions-debug_file_level* +VdebugOptions-debug_window_level Vdebug.txt /*VdebugOptions-debug_window_level* +VdebugOptions-ide_key Vdebug.txt /*VdebugOptions-ide_key* +VdebugOptions-marker_closed_tree Vdebug.txt /*VdebugOptions-marker_closed_tree* +VdebugOptions-marker_default Vdebug.txt /*VdebugOptions-marker_default* +VdebugOptions-marker_open_tree Vdebug.txt /*VdebugOptions-marker_open_tree* +VdebugOptions-on_close Vdebug.txt /*VdebugOptions-on_close* +VdebugOptions-path_maps Vdebug.txt /*VdebugOptions-path_maps* +VdebugOptions-port Vdebug.txt /*VdebugOptions-port* +VdebugOptions-server Vdebug.txt /*VdebugOptions-server* +VdebugOptions-sign_breakpoint Vdebug.txt /*VdebugOptions-sign_breakpoint* +VdebugOptions-sign_current Vdebug.txt /*VdebugOptions-sign_current* +VdebugOptions-timeout Vdebug.txt /*VdebugOptions-timeout* +VdebugOptions-watch_window_style Vdebug.txt /*VdebugOptions-watch_window_style* +VdebugRemote Vdebug.txt /*VdebugRemote* +VdebugRemoteConnection Vdebug.txt /*VdebugRemoteConnection* +VdebugRemoteFilePaths Vdebug.txt /*VdebugRemoteFilePaths* +VdebugRemoveBreakpoints Vdebug.txt /*VdebugRemoveBreakpoints* +VdebugSetBreakpoints Vdebug.txt /*VdebugSetBreakpoints* +VdebugSetBreakpoints-call Vdebug.txt /*VdebugSetBreakpoints-call* +VdebugSetBreakpoints-conditional Vdebug.txt /*VdebugSetBreakpoints-conditional* +VdebugSetBreakpoints-exception Vdebug.txt /*VdebugSetBreakpoints-exception* +VdebugSetBreakpoints-return Vdebug.txt /*VdebugSetBreakpoints-return* +VdebugSetBreakpoints-watch Vdebug.txt /*VdebugSetBreakpoints-watch* +VdebugSetLineBreakpoint Vdebug.txt /*VdebugSetLineBreakpoint* +VdebugSetUp Vdebug.txt /*VdebugSetUp* +VdebugSetUpNodejs Vdebug.txt /*VdebugSetUpNodejs* +VdebugSetUpPHP Vdebug.txt /*VdebugSetUpPHP* +VdebugSetUpPerl Vdebug.txt /*VdebugSetUpPerl* +VdebugSetUpPython Vdebug.txt /*VdebugSetUpPython* +VdebugSetUpRuby Vdebug.txt /*VdebugSetUpRuby* +VdebugSetUpTcl Vdebug.txt /*VdebugSetUpTcl* +VdebugSourceWindow Vdebug.txt /*VdebugSourceWindow* +VdebugStackWindow Vdebug.txt /*VdebugStackWindow* +VdebugStart Vdebug.txt /*VdebugStart* +VdebugStatusWindow Vdebug.txt /*VdebugStatusWindow* +VdebugTrace Vdebug.txt /*VdebugTrace* +VdebugTraceWindow Vdebug.txt /*VdebugTraceWindow* +VdebugTroubleshooting Vdebug.txt /*VdebugTroubleshooting* +VdebugUI Vdebug.txt /*VdebugUI* +VdebugUsage Vdebug.txt /*VdebugUsage* +VdebugViewBreakpoints Vdebug.txt /*VdebugViewBreakpoints* +VdebugWatchWindow Vdebug.txt /*VdebugWatchWindow* +add_inactive_statusline_func airline.txt /*add_inactive_statusline_func* +add_statusline_func airline.txt /*add_statusline_func* +airline airline.txt /*airline* +airline#extensions#tabline#exclude_buffers airline.txt /*airline#extensions#tabline#exclude_buffers* +airline#ignore_bufadd_pat airline.txt /*airline#ignore_bufadd_pat* +airline-accents airline.txt /*airline-accents* +airline-advanced-customization airline.txt /*airline-advanced-customization* +airline-ale airline.txt /*airline-ale* +airline-autocommands airline.txt /*airline-autocommands* +airline-branch airline.txt /*airline-branch* +airline-bufferline airline.txt /*airline-bufferline* +airline-capslock airline.txt /*airline-capslock* +airline-commands airline.txt /*airline-commands* +airline-configuration airline.txt /*airline-configuration* +airline-contents airline.txt /*airline-contents* +airline-contributions airline.txt /*airline-contributions* +airline-csv airline.txt /*airline-csv* +airline-ctrlp airline.txt /*airline-ctrlp* +airline-ctrlspace airline.txt /*airline-ctrlspace* +airline-cursormode airline.txt /*airline-cursormode* +airline-customization airline.txt /*airline-customization* +airline-default airline.txt /*airline-default* +airline-eclim airline.txt /*airline-eclim* +airline-extensions airline.txt /*airline-extensions* +airline-features airline.txt /*airline-features* +airline-fugitiveline airline.txt /*airline-fugitiveline* +airline-funcrefs airline.txt /*airline-funcrefs* +airline-grepper airline.txt /*airline-grepper* +airline-gutentags airline.txt /*airline-gutentags* +airline-hunks airline.txt /*airline-hunks* +airline-intro airline.txt /*airline-intro* +airline-keymap airline.txt /*airline-keymap* +airline-languageclient airline.txt /*airline-languageclient* +airline-license airline.txt /*airline-license* +airline-localsearch airline.txt /*airline-localsearch* +airline-name airline.txt /*airline-name* +airline-neomake airline.txt /*airline-neomake* +airline-nerdtree airline.txt /*airline-nerdtree* +airline-nrrwrgn airline.txt /*airline-nrrwrgn* +airline-obsession airline.txt /*airline-obsession* +airline-parts airline.txt /*airline-parts* +airline-pipeline airline.txt /*airline-pipeline* +airline-pipeline-return-codes airline.txt /*airline-pipeline-return-codes* +airline-po airline.txt /*airline-po* +airline-predefined-parts airline.txt /*airline-predefined-parts* +airline-promptline airline.txt /*airline-promptline* +airline-quickfix airline.txt /*airline-quickfix* +airline-sections airline.txt /*airline-sections* +airline-syntastic airline.txt /*airline-syntastic* +airline-tabline airline.txt /*airline-tabline* +airline-taboo airline.txt /*airline-taboo* +airline-tagbar airline.txt /*airline-tagbar* +airline-themes airline.txt /*airline-themes* +airline-tmuxline airline.txt /*airline-tmuxline* +airline-troubleshooting airline.txt /*airline-troubleshooting* +airline-vimagit airline.txt /*airline-vimagit* +airline-vimtex airline.txt /*airline-vimtex* +airline-virtualenv airline.txt /*airline-virtualenv* +airline-whitespace airline.txt /*airline-whitespace* +airline-windowswap airline.txt /*airline-windowswap* +airline-wordcount airline.txt /*airline-wordcount* +airline-writing-extensions airline.txt /*airline-writing-extensions* +airline-xkblayout airline.txt /*airline-xkblayout* +airline-xtabline airline.txt /*airline-xtabline* +airline-ycm airline.txt /*airline-ycm* +airline.txt airline.txt /*airline.txt* +b:neomake___ neomake.txt /*b:neomake___* +b:neomake__enabled_makers neomake.txt /*b:neomake__enabled_makers* +b:neomake__ neomake.txt /*b:neomake__* +b:neomake_enabled_makers neomake.txt /*b:neomake_enabled_makers* +b:neomake_list_height neomake.txt /*b:neomake_list_height* +b:neomake_open_list neomake.txt /*b:neomake_open_list* +g:airline#extensions#neomake#enabled neomake.txt /*g:airline#extensions#neomake#enabled* +g:neomake___ neomake.txt /*g:neomake___* +g:neomake___maker neomake.txt /*g:neomake___maker* +g:neomake__enabled_makers neomake.txt /*g:neomake__enabled_makers* +g:neomake__ neomake.txt /*g:neomake__* +g:neomake__maker neomake.txt /*g:neomake__maker* +g:neomake_cursormoved_delay neomake.txt /*g:neomake_cursormoved_delay* +g:neomake_echo_current_error neomake.txt /*g:neomake_echo_current_error* +g:neomake_enabled_makers neomake.txt /*g:neomake_enabled_makers* +g:neomake_error_sign neomake.txt /*g:neomake_error_sign* +g:neomake_highlight_columns neomake.txt /*g:neomake_highlight_columns* +g:neomake_highlight_lines neomake.txt /*g:neomake_highlight_lines* +g:neomake_info_sign neomake.txt /*g:neomake_info_sign* +g:neomake_list_height neomake.txt /*g:neomake_list_height* +g:neomake_logfile neomake.txt /*g:neomake_logfile* +g:neomake_message_sign neomake.txt /*g:neomake_message_sign* +g:neomake_open_list neomake.txt /*g:neomake_open_list* +g:neomake_place_signs neomake.txt /*g:neomake_place_signs* +g:neomake_remove_invalid_entries neomake.txt /*g:neomake_remove_invalid_entries* +g:neomake_serialize neomake.txt /*g:neomake_serialize* +g:neomake_serialize_abort_on_error neomake.txt /*g:neomake_serialize_abort_on_error* +g:neomake_verbose neomake.txt /*g:neomake_verbose* +g:neomake_virtualtext_current_error neomake.txt /*g:neomake_virtualtext_current_error* +g:neomake_virtualtext_prefix neomake.txt /*g:neomake_virtualtext_prefix* +g:neomake_warning_sign neomake.txt /*g:neomake_warning_sign* +neomake neomake.txt /*neomake* +neomake#CancelJob neomake.txt /*neomake#CancelJob* +neomake#ListJobs neomake.txt /*neomake#ListJobs* +neomake#Make neomake.txt /*neomake#Make* +neomake#Sh neomake.txt /*neomake#Sh* +neomake#signs#RedefineErrorSign neomake.txt /*neomake#signs#RedefineErrorSign* +neomake#signs#RedefineWarningSign neomake.txt /*neomake#signs#RedefineWarningSign* +neomake#statusline#LoclistCounts neomake.txt /*neomake#statusline#LoclistCounts* +neomake#statusline#LoclistStatus neomake.txt /*neomake#statusline#LoclistStatus* +neomake#statusline#QflistCounts neomake.txt /*neomake#statusline#QflistCounts* +neomake#statusline#QflistStatus neomake.txt /*neomake#statusline#QflistStatus* +neomake#statusline#get() neomake.txt /*neomake#statusline#get()* +neomake-args-file neomake.txt /*neomake-args-file* +neomake-autocmds neomake.txt /*neomake-autocmds* +neomake-automake neomake.txt /*neomake-automake* +neomake-automake-dynamic-delay neomake.txt /*neomake-automake-dynamic-delay* +neomake-commands neomake.txt /*neomake-commands* +neomake-configuration neomake.txt /*neomake-configuration* +neomake-disable neomake.txt /*neomake-disable* +neomake-enable neomake.txt /*neomake-enable* +neomake-faq neomake.txt /*neomake-faq* +neomake-faq-errorformat neomake.txt /*neomake-faq-errorformat* +neomake-functions neomake.txt /*neomake-functions* +neomake-highlight neomake.txt /*neomake-highlight* +neomake-hooks neomake.txt /*neomake-hooks* +neomake-introduction neomake.txt /*neomake-introduction* +neomake-job-makers neomake.txt /*neomake-job-makers* +neomake-makers neomake.txt /*neomake-makers* +neomake-makers-InitForJob neomake.txt /*neomake-makers-InitForJob* +neomake-makers-args neomake.txt /*neomake-makers-args* +neomake-makers-buffer_output neomake.txt /*neomake-makers-buffer_output* +neomake-makers-cwd neomake.txt /*neomake-makers-cwd* +neomake-makers-exe neomake.txt /*neomake-makers-exe* +neomake-makers-filter_output neomake.txt /*neomake-makers-filter_output* +neomake-makers-get_list_entries neomake.txt /*neomake-makers-get_list_entries* +neomake-makers-mapexpr neomake.txt /*neomake-makers-mapexpr* +neomake-makers-output_stream neomake.txt /*neomake-makers-output_stream* +neomake-makers-postprocess neomake.txt /*neomake-makers-postprocess* +neomake-makers-process_json neomake.txt /*neomake-makers-process_json* +neomake-makers-process_output neomake.txt /*neomake-makers-process_output* +neomake-makers-processing neomake.txt /*neomake-makers-processing* +neomake-makers-properties neomake.txt /*neomake-makers-properties* +neomake-makers-remove_invalid_entries neomake.txt /*neomake-makers-remove_invalid_entries* +neomake-makers-supports_stdin neomake.txt /*neomake-makers-supports_stdin* +neomake-makers-tempfile_dir neomake.txt /*neomake-makers-tempfile_dir* +neomake-makers-tempfile_enabled neomake.txt /*neomake-makers-tempfile_enabled* +neomake-makers-uses_stdin neomake.txt /*neomake-makers-uses_stdin* +neomake-object-jobinfo neomake.txt /*neomake-object-jobinfo* +neomake-object-maker neomake.txt /*neomake-object-maker* +neomake-objects neomake.txt /*neomake-objects* +neomake-options neomake.txt /*neomake-options* +neomake-signs neomake.txt /*neomake-signs* +neomake-statusline neomake.txt /*neomake-statusline* +neomake-toggle neomake.txt /*neomake-toggle* +neomake.txt neomake.txt /*neomake.txt* +remove_statusline_func airline.txt /*remove_statusline_func* +vim-airline airline.txt /*vim-airline* -- cgit v1.2.3