2 Commits

Author SHA1 Message Date
get-me-power f083d765d8 debug 2023-06-03 23:51:47 +09:00
get-me-power 45b6334faf test: add branch extensions test 2023-06-03 23:46:37 +09:00
103 changed files with 347 additions and 1099 deletions
+1 -2
View File
@@ -11,11 +11,10 @@ on:
jobs:
test:
name: Test
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
strategy:
matrix:
vim:
- v9.1.0000
- v9.0.0000
- v8.2.1000
- v8.2.0000
+5 -27
View File
@@ -2,9 +2,7 @@
This is the Changelog for the vim-airline project.
## [0.13] - Unreleased
## [0.12] - 2026-05-02
## [0.12] - Unreleased
- New features
- Extensions:
- [poetv](https://github.com/petobens/poet-v) support
@@ -14,42 +12,22 @@ This is the Changelog for the vim-airline project.
- [vim-dirvish](https://github.com/justinmk/vim-dirvish) support
- [fzf.vim](https://github.com/junegunn/fzf.vim) support
- [OmniSharp](https://github.com/OmniSharp/omnisharp-vim) support
- [searchcount](https://vim-jp.org/vimdoc-en/eval.html#searchcount()) support
- [searchcount](https://vim-jp.org/vimdoc-en/eval.html#searchcount()) support
- [fern.vim](https://github.com/lambdalisue/fern.vim) support
- [Vim-CMake](https://github.com/cdelledonne/vim-cmake) support
- [battery.vim](https://github.com/lambdalisue/battery.vim) support
- [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) support
- [gen_tags.vim](https://github.com/jsfaint/gen_tags.vim) support
- [vim-rufu](https://github.com/ruby-formatter/rufo-vim) support
- [vim-flog](https://github.com/rbong/vim-flog) support
- [nvim-lsp](https://github.com/neovim/nvim-lsp) support
- [vim9lsp.vim](https://github.com/yegappan/lsp) support
- [fcitx.vim](https://github.com/fcitx/fcitx5) support
- [gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim) support
- [codeium](https://github.com/Exafunction/codeium.vim) support
- [vimodoro](https://github.com/VimfanTPdvorak/vimodoro) support
- [nerdfont](https://github.com/lambdalisue/nerdfont.vim) support
- [zhihu](https://github.com/pxwg/zhihu.nvim) Neovim support
- Ascii Scrollbar support
- Improvements
- git branch can also be displayed using [gina.vim](https://github.com/lambdalisue/gina.vim)
- coc extensions can also show additional status messages as well as the current function
- [coc-git](https://github.com/neoclide/coc-git) extension integrated into hunks extension
- rewrote parts using Vim9 Script for performance improvements
- [vim-obsession](https://github.com/tpope/vim-obsession) allow to set paused indicator
- Display executable symbol for executable script
- Support for Neovims global statusline
- whitespace extensions: add git conflict marker support
- Support tabpanel, including mouse and scroll support (Vim only)
- Support multi-line statusline (Vim only)
- Support clickable buffers in Vim
- Support for showing `repo:/path/file` path like style using the `gitrepo` style
- tabline: Expose `<Plug>AirlineSelectFirstTab` and `<Plug>AirlineSelectLastTab`
- tabline: Add a new `buffer_idx_mode` that adds a lot more mappings.
- Other
- Changed CI from travis-ci.org to GitHub Actions
- Introduce Vim script static analysis using [reviewdog](https://github.com/reviewdog/action-vint)
- Added multiple Vim versions to unit tests
- Added multiple Vim versions to unit tests using Travis CI
- Added option to show short paths in the status line
## [0.11] - 2019-11-10
@@ -107,7 +85,7 @@ This is the Changelog for the vim-airline project.
- [fugitive](https://github.com/tpope/vim-fugitive) plugin has been refactored
causing adjustments for vim-airline, also uses Fugitives new API calls
- some improvements to Vims terminal mode
- Allow to use alternative separators for inactive windows ([#1236](https://github.com/vim-airline/vim-airline/issues/1236))
- Allow to use alternative seperators for inactive windows ([#1236](https://github.com/vim-airline/vim-airline/issues/1236))
- Statusline can be set to inactive, whenever Vim loses focus (using FocusLost autocommand)
## [0.9] - 2018-01-15
@@ -157,7 +135,7 @@ This is the Changelog for the vim-airline project.
## [0.8] - 2016-03-09
- Changes
- Airline converted to an organization and moved to new [repository](https://github.com/vim-airline/vim-airline)
- Themes have been split into a separate repository [vim-airline-themes](https://github.com/vim-airline/vim-airline-themes)
- Themes have been split into an separate repository [vim-airline-themes](https://github.com/vim-airline/vim-airline-themes)
- Improvements
- Extensions
- branch: support Git and Mercurial simultaneously, untracked files
+1 -1
View File
@@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (C) 2013-2026 Bailey Ling, Christian Brabandt, et al.
Copyright (C) 2013-2021 Bailey Ling, Christian Brabandt, et al.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the "Software"),
+2 -6
View File
@@ -32,8 +32,6 @@ information. By default (without configuration) this line will look like this:
+-----------------------------------------------------------------------------+
| A | B | C X | Y | Z | [...] |
+-----------------------------------------------------------------------------+
| [...] |
+-----------------------------------------------------------------------------+
```
The statusline is the colored line at the bottom, which contains the sections
@@ -47,7 +45,7 @@ section|meaning (example)
X | filetype (vim)
Y | file encoding[fileformat] (utf-8[unix])
Z | current position in the file
[...] | additional sections (warning/errors/statistics) from external plugins (e.g. YCM, syntastic, ...)<br>can be shown on a second line optionally (Vim only)
[...] | additional sections (warning/errors/statistics) from external plugins (e.g. YCM, syntastic, ...)
The information in Section Z looks like this:
@@ -241,7 +239,6 @@ to call custom functions. Use `:let g:airline_statusline_ontop=1` to enable it.
Every section is composed of parts, and you can reorder and reconfigure them at will.
![image](https://f.cloud.github.com/assets/306502/1073278/f291dd4c-14a3-11e3-8a83-268e2753f97d.png)
Note: nowadays you should use the `AirlineAfterInit` autocommand
Sections can contain accents, which allows for very granular control of visuals (see configuration [here](https://github.com/vim-airline/vim-airline/issues/299#issuecomment-25772886)).
@@ -309,7 +306,7 @@ If you are interested in becoming a maintainer (we always welcome more maintaine
# License
[MIT License][58]. Copyright (c) 2013-2026 Bailey Ling & Contributors.
[MIT License][58]. Copyright (c) 2013-2021 Bailey Ling & Contributors.
[1]: https://github.com/Lokaltog/vim-powerline
[2]: https://github.com/powerline/powerline
@@ -373,4 +370,3 @@ If you are interested in becoming a maintainer (we always welcome more maintaine
[61]: http://github.com/lambdalisue/battery.vim/
[62]: http://github.com/rbong/vim-flog/
[63]: https://github.com/lewis6991/gitsigns.nvim
[64]: https://github.com/VimfanTPdvorak/vimodoro
+2 -2
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
@@ -6,7 +6,7 @@ scriptencoding utf-8
let g:airline_statusline_funcrefs = get(g:, 'airline_statusline_funcrefs', [])
let g:airline_inactive_funcrefs = get(g:, 'airline_inactive_statusline_funcrefs', [])
let s:sections = ['a','b','c','gutter','x','y','z', 'error', 'warning', 'warning2']
let s:sections = ['a','b','c','gutter','x','y','z', 'error', 'warning']
let s:contexts = {}
let s:core_funcrefs = [
\ function('airline#extensions#apply'),
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Christian Brabandt et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
+7 -3
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
@@ -190,8 +190,12 @@ function! s:section_is_empty(self, content)
endif
" only check, if airline#skip_empty_sections == 1
if get(g:, 'airline_skip_empty_sections', 0) == 0 ||
\ get(w:, 'airline_skip_empty_sections', -1) == 0
if get(g:, 'airline_skip_empty_sections', 0) == 0
return 0
endif
" only check, if airline#skip_empty_sections == 1
if get(w:, 'airline_skip_empty_sections', -1) == 0
return 0
endif
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
+2 -27
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
@@ -177,11 +177,6 @@ function! airline#extensions#load()
call add(s:loaded_ext, 'netrw')
endif
if get(g:, 'loaded_nerdfont', 0) && get(g:, 'airline#extensions#nerdfont#enabled', 1)
call airline#extensions#nerdfont#init(s:ext)
call add(s:loaded_ext, 'nerdfont')
endif
" fzf buffers are also terminal buffers, so this must be above term.
if exists(':FZF') && get(g:, 'airline#extensions#fzf#enabled', 1)
call airline#extensions#fzf#init(s:ext)
@@ -234,11 +229,6 @@ function! airline#extensions#load()
call add(s:loaded_ext, 'undotree')
endif
if exists(':RTM')
call airline#extensions#vimodoro#init(s:ext)
call add(s:loaded_ext, 'vimodoro')
endif
if get(g:, 'airline#extensions#hunks#enabled', 1)
\ && (exists('g:loaded_signify')
\ || exists('g:loaded_gitgutter')
@@ -400,11 +390,6 @@ function! airline#extensions#load()
call add(s:loaded_ext, 'tabline')
endif
if get(g:, 'airline#extensions#tabpanel#enabled', 0)
call airline#extensions#tabpanel#Init(s:ext)
call add(s:loaded_ext, 'tabpanel')
endif
if get(g:, 'airline#extensions#tmuxline#enabled', 1) && exists(':Tmuxline')
call airline#extensions#tmuxline#init(s:ext)
call add(s:loaded_ext, 'tmuxline')
@@ -430,11 +415,6 @@ function! airline#extensions#load()
call add(s:loaded_ext, 'capslock')
endif
if (get(g:, 'airline#extensions#codeium#enabled', 1) && get(g:, 'loaded_codeium', 0))
call airline#extensions#codeium#init(s:ext)
call add(s:loaded_ext, 'codeium')
endif
if (get(g:, 'airline#extensions#gutentags#enabled', 1) && get(g:, 'loaded_gutentags', 0))
call airline#extensions#gutentags#init(s:ext)
call add(s:loaded_ext, 'gutentags')
@@ -450,7 +430,7 @@ function! airline#extensions#load()
call add(s:loaded_ext, 'grepper')
endif
if get(g:, 'airline#extensions#xkblayout#enabled', 1) && (exists('g:XkbSwitchLib') || exists('*FcitxCurrentIM') || has('nvim'))
if get(g:, 'airline#extensions#xkblayout#enabled', 1) && (exists('g:XkbSwitchLib') || exists('*FcitxCurrentIM'))
call airline#extensions#xkblayout#init(s:ext)
call add(s:loaded_ext, 'xkblayout')
endif
@@ -536,11 +516,6 @@ function! airline#extensions#load()
call add(s:loaded_ext, 'rufo')
endif
if (get(g:, 'airline#extensions#zhihu#enabled', 1) && airline#util#has_zhihu())
call airline#extensions#zhihu#init(s:ext)
call add(s:loaded_ext, 'zhihu')
endif
endfunction
function! airline#extensions#get_loaded_extensions()
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bjorn Neergaard, w0rp et al.
" MIT License. Copyright (c) 2013-2021 Bjorn Neergaard, w0rp et al.
" Plugin: https://github.com/dense-analysis/ale
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2014-2026 Mathias Andersson et al.
" MIT License. Copyright (c) 2014-2021 Mathias Andersson et al.
" Plugin: https://github.com/lambdalisue/battery.vim
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2026 Bjoern Petri <bjoern.petri@sundevil.de>
" MIT License. Copyright (c) 2021 Bjoern Petri <bjoern.petri@sundevil.de>
" Plugin: https://github.com/MattesGroeger/vim-bookmarks
" vim: et ts=2 sts=2 sw=2
+3 -3
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: fugitive, gina, lawrencium and vcscommand
" vim: et ts=2 sts=2 sw=2
@@ -17,8 +17,8 @@ scriptencoding utf-8
let s:vcs_config = {
\ 'git': {
\ 'exe': 'git',
\ 'cmd': 'git --no-optional-locks status --porcelain -- ',
\ 'dirty': 'git --no-optional-locks status -uno --porcelain --ignore-submodules',
\ 'cmd': 'git status --porcelain -- ',
\ 'dirty': 'git status -uno --porcelain --ignore-submodules',
\ 'untracked_mark': '??',
\ 'exclude': '\.git',
\ 'update_branch': 's:update_git_branch',
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/bling/vim-bufferline
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2014-2026 Mathias Andersson et al.
" MIT License. Copyright (c) 2014-2021 Mathias Andersson et al.
" Plugin: https://github.com/tpope/vim-capslock
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2019-2026 Peng Guanwen et al.
" MIT License. Copyright (c) 2019-2021 Peng Guanwen et al.
" vim: et ts=2 sts=2 sw=2
" Plugin: https://github.com/neoclide/coc
-17
View File
@@ -1,17 +0,0 @@
" MIT License. Copyright (c) 2014-2026 Mathias Andersson et al.
" Plugin: https://github.com/Exafunction/codeium.vim
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
if !get(g:, 'loaded_codeium', 0)
finish
endif
function! airline#extensions#codeium#status() abort
return '{…}' . codeium#GetStatusString()
endfunction
function! airline#extensions#codeium#init(ext) abort
call airline#parts#define_function('codeium', 'airline#extensions#codeium#status')
endfunction
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/wincent/command-t
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling, Christian Brabandt et al.
" Plugin: https://github.com/chrisbra/csv.vim
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/ctrlpvim/ctrlp.vim
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/szw/vim-ctrlspace
" vim: et ts=2 sts=2 sw=2
+2 -1
View File
@@ -1,6 +1,7 @@
" MIT Licsense.
" Plugin: https://github.com/vheon/vim-cursormode
" Copyright (C) 2014-2026 Andrea Cedraro <a.cedraro@gmail.com>, Eduardo Suarez-Santana <e.suarezsantana@gmail.com>
" Copyright (C) 2014 Andrea Cedraro <a.cedraro@gmail.com>,
" Copyright (C) 2017 Eduardo Suarez-Santana <e.suarezsantana@gmail.com>
scriptencoding utf-8
+11 -36
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
@@ -11,11 +11,10 @@ let s:section_truncate_width = get(g:, 'airline#extensions#default#section_trunc
\ 'z': 45,
\ 'warning': 80,
\ 'error': 80,
\ 'warning2': 80,
\ })
let s:layout = get(g:, 'airline#extensions#default#layout', [
\ [ 'a', 'b', 'c' ],
\ [ 'x', 'y', 'z', 'warning', 'error', 'warning2' ]
\ [ 'x', 'y', 'z', 'warning', 'error' ]
\ ])
function! s:get_section(winnr, key, ...)
@@ -33,24 +32,9 @@ function! s:get_section(winnr, key, ...)
return empty(text) ? '' : prefix.text.suffix
endfunction
function! s:eval_section_empty(content)
let exprlist = []
call substitute(a:content, '%{\([^}]*\)}', '\=add(exprlist, submatch(1))', 'g')
for expr in exprlist
try
if !empty(eval(expr))
return 0
endif
catch
return 0
endtry
endfor
return 1
endfunction
function! s:build_sections(builder, context, keys)
for key in a:keys
if (key == 'warning' || key == 'error' || key == 'warning2') && !a:context.active
if (key == 'warning' || key == 'error') && !a:context.active
continue
endif
call s:add_section(a:builder, a:context, key)
@@ -65,30 +49,21 @@ if s:section_use_groups && (v:version >= 704 || (v:version >= 703 && has('patch8
\ (v:version == 704 && !has("patch1511"))
" i have no idea why the warning section needs special treatment, but it's
" needed to prevent separators from showing up
if ((a:key == 'error' || a:key == 'warning' || a:key == 'warning2')
\ && empty(s:get_section(a:context.winnr, a:key)))
if ((a:key == 'error' || a:key == 'warning') && empty(s:get_section(a:context.winnr, a:key)))
return
endif
if a:key == 'warning2' && airline#util#has_multiline()
let section = s:get_section(a:context.winnr, a:key)
if !s:eval_section_empty(section)
call a:builder.add_raw('%@%#airline_warning#'.section)
endif
else
if condition
call a:builder.add_raw('%(')
endif
call a:builder.add_section('airline_'.a:key, s:get_section(a:context.winnr, a:key))
if condition
call a:builder.add_raw('%)')
endif
if condition
call a:builder.add_raw('%(')
endif
call a:builder.add_section('airline_'.a:key, s:get_section(a:context.winnr, a:key))
if condition
call a:builder.add_raw('%)')
endif
endfunction
else
" older version don't like the use of %(%)
function! s:add_section(builder, context, key)
if ((a:key == 'error' || a:key == 'warning')
\ && empty(s:get_section(a:context.winnr, a:key)))
if ((a:key == 'error' || a:key == 'warning') && empty(s:get_section(a:context.winnr, a:key)))
return
endif
if a:key == 'warning'
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2017-2026 Thomas Dy et al.
" MIT License. Copyright (c) 2017-2021 Thomas Dy et al.
" Plugin: https://github.com/Shougo/denite.nvim
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" PLugin: https://eclim.org
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
+20 -47
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026
" MIT License. Copyright (c) 2013-2021
" Plugin: https://github.com/lambdalisue/fern.vim
" vim: et ts=2 sts=2 sw=2
@@ -7,57 +7,30 @@ if !get(g:, 'loaded_fern', 0)
finish
endif
function! airline#extensions#fern#apply_active(...) abort
" check if current buffer is both fern and active
if (&ft =~# 'fern') && a:2.active ==# '1'
call airline#extensions#fern#configure_sections(a:1, a:2)
return 1
endif
endfunction
function! airline#extensions#fern#apply(...) abort
if (&ft =~# 'fern')
let spc = g:airline_symbols.space
let fri = fern#fri#parse(expand('%f'))
function! airline#extensions#fern#apply_inactive(...) abort
" check if referenced buffer is both fern and inactive
if getbufvar(a:2.bufnr, '&filetype') ==# 'fern' && a:2.active ==# '0'
call airline#extensions#fern#configure_sections(a:1, a:2)
return 1
endif
endfunction
function! airline#extensions#fern#configure_sections(win, context) abort
let spc = g:airline_symbols.space
let fri = fern#fri#parse(bufname(a:context.bufnr))
let abspath = ''
" Replace uses fern-replacer filetype, do not try to parse in that case
if &ft ==# 'fern' && fri.scheme ==# 'fern'
let abspath = fern#fri#to#filepath(fern#fri#parse(fri.path))
endif
call a:win.add_section('airline_a', spc.'fern'.spc)
if exists('*airline#extensions#branch#get_head')
" because fern navigation changes an internal _fri_ and not the working directory
" we need to give it some help so the branch name gets updated
try
if &ft ==# 'fern'
execute 'lcd' fnameescape(abspath)
endif
catch /^Vim\%((\a\+)\)\=:E344:/
call a:win.add_section('airline_b', '')
endtry
call a:win.add_section('airline_b', spc.'%{airline#extensions#branch#get_head()}'.spc)
else
call a:win.add_section('airline_b', '')
endif
if !(fri.authority =~# '^drawer')
call a:win.add_section('airline_c', spc.fnamemodify(abspath, ':~'))
call a:win.split()
if len(get(g:, 'fern#comparators', {}))
call a:win.add_section('airline_y', spc.'%{fern#comparator}'.spc)
call a:1.add_section('airline_a', spc.'fern'.spc)
if exists('*airline#extensions#branch#get_head')
call a:1.add_section('airline_b', spc.'%{airline#extensions#branch#get_head()}'.spc)
else
call a:1.add_section('airline_b', '')
endif
if !(fri.authority =~# '^drawer')
let abspath = substitute(fri.path, 'file://', '', '')
call a:1.add_section('airline_c', spc.fnamemodify(abspath, ':~'))
call a:1.split()
if len(get(g:, 'fern#comparators', {}))
call a:1.add_section('airline_y', spc.'%{fern#comparator}'.spc)
endif
endif
return 1
endif
endfunction
function! airline#extensions#fern#init(ext) abort
let g:fern_force_overwrite_statusline = 0
call a:ext.add_statusline_func('airline#extensions#fern#apply_active')
call a:ext.add_inactive_statusline_func('airline#extensions#fern#apply_inactive')
call a:ext.add_statusline_func('airline#extensions#fern#apply')
endfunction
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2017-2026 Cimbali et al
" MIT License. Copyright (c) 2017-2021 Cimbali et al
" Plugin: https://github.com/tpope/vim-fugitive
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/junegunn/fzf, https://github.com/junegunn/fzf.vim
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2014-2026 Mathias Andersson et al.
" MIT License. Copyright (c) 2014-2021 Mathias Andersson et al.
" Written by Kamil Cukrowski 2020
" Plugin: https://github.com/jsfaint/gen_tags.vim
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026
" MIT License. Copyright (c) 2013-2021
" Plugin: https://github.com/lambdalisue/gina.vim
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2014-2026 Mathias Andersson et al.
" MIT License. Copyright (c) 2014-2021 Mathias Andersson et al.
" Plugin: https://github.com/mhinz/vim-grepper
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2014-2026 Mathias Andersson et al.
" MIT License. Copyright (c) 2014-2021 Mathias Andersson et al.
" Plugin: https://github.com/ludovicchabant/vim-gutentags
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: vim-gitgutter, vim-signify, changesPlugin, quickfixsigns, coc-git,
" gitsigns.nvim
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Doron Behar, C.Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Doron Behar, C.Brabandt et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bjorn Neergaard, hallettj et al.
" MIT License. Copyright (c) 2013-2021 Bjorn Neergaard, hallettj et al.
" Plugin: https://github.com/autozimu/LanguageClient-neovim
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2018-2026 mox et al.
" MIT License. Copyright (c) 2018-2021 mox et al.
" Plugin: https://github.com/mox-mox/vim-localsearch
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 François-Xavier Carton et al.
" MIT License. Copyright (c) 2013-2021 François-Xavier Carton et al.
" Plugin: https://github.com/prabirshrestha/vim-lsp
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/neomake/neomake
" vim: et ts=2 sts=2 sw=2
-46
View File
@@ -1,46 +0,0 @@
" MIT License. Copyright (c) 2026-2026 Wu Zhenyu et al
" Plugin: https://github.com/lambdalisue/nerdfont.vim
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
if !get(g:, 'loaded_nerdfont', 0)
finish
endif
function! airline#extensions#nerdfont#fileformat() abort
if &fileformat ==# 'dos'
return nerdfont#platform#find('windows')
endif
if &fileformat ==# 'mac'
return nerdfont#platform#find('macos')
endif
if &fileformat ==# 'unix'
if has('unix')
return nerdfont#platform#find()
else
return nerdfont#platform#find('linux')
endif
endif
endfunction
function! airline#extensions#nerdfont#ffenc() abort
let expected = get(g:, 'airline#parts#ffenc#skip_expected_string', '')
let bomb = &bomb ? '[BOM]' : ''
let noeolf = &eol ? '' : '[!EOL]'
let ff = strlen(&ff) ? '['.&ff.']' : ''
if expected is# &fenc.bomb.noeolf.ff
return ''
else
return &fenc.bomb.noeolf.' '.airline#extensions#nerdfont#fileformat()
endif
endfunction
function! airline#extensions#nerdfont#init(ext) abort
call airline#parts#define_function('ffenc', 'airline#extensions#nerdfont#ffenc')
call a:ext.add_statusline_func('airline#extensions#nerdfont#apply')
endfunction
function! airline#extensions#nerdfont#apply(...) abort
call airline#extensions#append_to_section('x', ' %{nerdfont#find()}')
endfunction
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: http://www.drchip.org/astronaut/vim/#NETRW
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling, Christian Brabandt et al.
" Plugin: https://github.com/chrisbra/NrrwRgn
" vim: et ts=2 sts=2 sw=2
+3 -5
View File
@@ -1,4 +1,4 @@
" Apache 2.0 license. Copyright (c) 2019-2026 Copyright Neovim contributors.
" Apache 2.0 license. Copyright (c) 2019-2021 Copyright Neovim contributors.
" Plugin: https://github.com/neovim/nvim-lsp
" vim: et ts=2 sts=2 sw=2
@@ -15,9 +15,7 @@ function! s:airline_nvimlsp_count(cnt, symbol) abort
endfunction
function! airline#extensions#nvimlsp#get(type) abort
if has('nvim-0.11') && luaeval('vim.tbl_isempty(vim.lsp.get_clients({ bufnr = 0 }))')
return ''
elseif !has('nvim-0.11') && luaeval('vim.tbl_isempty(vim.lsp.buf_get_clients(0))')
if luaeval('vim.tbl_isempty(vim.lsp.buf_get_clients(0))')
return ''
endif
@@ -47,7 +45,7 @@ endfunction
function! s:airline_nvimlsp_get_line_number(cnt, type) abort
let severity = a:type == 'Warning' ? 'Warn' : a:type
let num = v:lua.vim.diagnostic.get(0, { 'severity': severity })[0].lnum + 1
let num = v:lua.vim.diagnostic.get(0, { 'severity': severity })[0].lnum
let l:open_lnum_symbol =
\ get(g:, 'airline#extensions#nvimlsp#open_lnum_symbol', '(L')
+2 -6
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/tpope/vim-obsession
" vim: et ts=2 sts=2 sw=2
@@ -14,14 +14,10 @@ if !exists('g:airline#extensions#obsession#indicator_text')
let g:airline#extensions#obsession#indicator_text = '$'
endif
if !exists('g:airline#extensions#obsession#indicator_text_paused')
let g:airline#extensions#obsession#indicator_text_paused = '' " vim-obsession defaults to 'S'
endif
function! airline#extensions#obsession#init(ext)
call airline#parts#define_function('obsession', 'airline#extensions#obsession#get_status')
endfunction
function! airline#extensions#obsession#get_status()
return ObsessionStatus((g:airline#extensions#obsession#indicator_text . s:spc), (g:airline#extensions#obsession#indicator_text_paused . s:spc))
return ObsessionStatus((g:airline#extensions#obsession#indicator_text . s:spc), '')
endfunction
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling, Christian Brabandt et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/petobens/poet_v
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/edkolev/promptline.vim
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021
" vim: et ts=2 sts=2 sw=2 et
scriptencoding utf-8
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" This extension is inspired by vim-anzu <https://github.com/osyo-manga/vim-anzu>.
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/vim-syntastic/syntastic
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 et
scriptencoding utf-8
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
+10 -81
View File
@@ -1,11 +1,11 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
let s:spc = g:airline_symbols.space
let s:current_bufnr = -1
let s:current_tabnr = -1
let s:current_modified = 0
let s:current_tabline = ''
let s:current_visible_buffers = []
@@ -49,15 +49,14 @@ function! airline#extensions#tabline#buffers#invalidate()
endfunction
function! airline#extensions#tabline#buffers#get()
let curbuf = bufnr('%')
let curtab = tabpagenr()
try
call <sid>map_keys()
catch
" no-op
endtry
if curbuf == s:current_bufnr && curtab == s:current_tabnr && &columns == s:column_width
if !g:airline_detect_modified || getbufvar(curbuf, '&modified') == s:current_modified
let cur = bufnr('%')
if cur == s:current_bufnr && &columns == s:column_width
if !g:airline_detect_modified || getbufvar(cur, '&modified') == s:current_modified
return s:current_tabline
endif
endif
@@ -78,10 +77,10 @@ function! airline#extensions#tabline#buffers#get()
let b.overflow_group = 'airline_tabhid'
let b.buffers = airline#extensions#tabline#buflist#list()
if get(g:, 'airline#extensions#tabline#current_first', 0)
if index(b.buffers, curbuf) > -1
call remove(b.buffers, index(b.buffers, curbuf))
if index(b.buffers, cur) > -1
call remove(b.buffers, index(b.buffers, cur))
endif
let b.buffers = [curbuf] + b.buffers
let b.buffers = [cur] + b.buffers
endif
function! b.get_group(i) dict
@@ -97,7 +96,6 @@ function! airline#extensions#tabline#buffers#get()
endfunction
if has("tablineat")
" Neovim version
function! b.get_pretitle(i) dict
let bufnum = get(self.buffers, a:i, -1)
return '%'.bufnum.'@airline#extensions#tabline#buffers#clickbuf@'
@@ -108,17 +106,6 @@ function! airline#extensions#tabline#buffers#get()
endfunction
endif
if has("statusline_click")
" Vim version
function! b.get_pretitle(i) dict
return '%'.get(self.buffers, a:i, -1).'[airline#extensions#tabline#buffers#clickbufVim]'
endfunction
function! b.get_posttitle(i) dict
return '%[]'
endfunction
endif
function! b.get_title(i) dict
let bufnum = get(self.buffers, a:i, -1)
let group = self.get_group(a:i)
@@ -142,7 +129,7 @@ function! airline#extensions#tabline#buffers#get()
endif
endfunction
let current_buffer = max([index(b.buffers, curbuf), 0])
let current_buffer = max([index(b.buffers, cur), 0])
let last_buffer = len(b.buffers) - 1
call b.insert_titles(current_buffer, 0, last_buffer)
@@ -155,8 +142,7 @@ function! airline#extensions#tabline#buffers#get()
call airline#extensions#tabline#add_tab_label(b)
let s:current_bufnr = curbuf
let s:current_tabnr = curtab
let s:current_bufnr = cur
let s:column_width = &columns
let s:current_tabline = b.build()
let s:current_visible_buffers = copy(b.buffers)
@@ -221,68 +207,11 @@ function! s:map_keys()
endif
noremap <silent> <Plug>AirlineSelectPrevTab :<C-u>call <SID>jump_to_tab(-v:count1)<CR>
noremap <silent> <Plug>AirlineSelectNextTab :<C-u>call <SID>jump_to_tab(v:count1)<CR>
noremap <silent> <Plug>AirlineSelectFirstTab :<C-u>call <SID>select_tab(0)<CR>
noremap <silent> <Plug>AirlineSelectLastTab :<C-u>call <SID>select_tab(len(airline#extensions#tabline#buflist#list()) - 1)<CR>
" Enable this for debugging
" com! AirlineBufferList :echo map(copy(s:current_visible_buffers), {i,k -> k.": ".bufname(k)})
endif
endfunction
function! airline#extensions#tabline#buffers#clickbufVim(dict) abort
" Clickable buffers in Vim, requires v9.2.0338
" single mouse button click without modifiers pressed
if a:dict.nclicks == 1 && empty(a:dict.mods)
if a:dict.button is# 'l'
" left button - switch to buffer
try
silent execute 'buffer' a:dict.minwid
catch
call airline#util#warning("Cannot switch buffer, current buffer is modified! See :h 'hidden'")
endtry
elseif a:dict.button is# 'm'
" middle button - delete buffer
if get(g:, 'airline#extensions#tabline#middle_click_preserves_windows', 0) == 0 || winnr('$') == 1
" just simply delete the clicked buffer. This will cause windows
" associated with the clicked buffer to be closed.
silent execute 'bdelete' a:dict.minwid
else
" find windows displaying the clicked buffer and open an new
" buffer in them.
let current_window = bufwinnr("%")
let window_number = bufwinnr(a:dict.minwid)
let last_window_visited = -1
" Set to 1 if the clicked buffer was open in any windows.
let buffer_in_window = 0
" Find the next window with the clicked buffer open. If bufwinnr()
" returns the same window number, this is because we clicked a new
" buffer, and then tried editing a new buffer. Vim won't create a
" new empty buffer for the same window, so we get the same window
" number from bufwinnr(). In this case we just give up and don't
" delete the buffer.
" This could be made cleaner if we could check if the clicked buffer
" is a new buffer, but I don't know if there is a way to do that.
while window_number != -1 && window_number != last_window_visited
let buffer_in_window = 1
silent execute window_number . 'wincmd w'
silent execute 'enew'
let last_window_visited = window_number
let window_number = bufwinnr(a:minwid)
endwhile
silent execute current_window . 'wincmd w'
if window_number != last_window_visited || buffer_in_window == 0
silent execute 'bdelete' a:dict.minwid
endif
endif
endif
endif
" force a redraw
return 1
endfunction
function! airline#extensions#tabline#buffers#clickbuf(minwid, clicks, button, modifiers) abort
" Clickable buffers
" works only in recent NeoVim with has('tablineat')
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2016-2026 Kevin Sapper et al.
" MIT License. Copyright (c) 2016-2021 Kevin Sapper et al.
" Plugin: https://github.com/szw/vim-ctrlspace
" vim: et ts=2 sts=2 sw=2
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 et
scriptencoding utf-8
@@ -47,7 +47,7 @@ if !exists(":def") || !airline#util#has_vim9_script()
else
" Vim9 Script implementation
def airline#extensions#tabline#formatters#default#format(bufnr: number, buffers: list<number>): string
var fnametruncate = get(g:, 'airline#extensions#tabline#fnametruncate', 0)
var fnametruncate = get(g:, 'airline#extensions#tabline#fnametruncate', 0)
var fmod = get(g:, 'airline#extensions#tabline#fnamemod', ':~:.')
var result = ''
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
@@ -1,7 +0,0 @@
let g:airline#extensions#tabline#formatters#nerdfont#formatter = get(g:, 'airline#extensions#tabline#formatters#nerdfont#formatter', 'default')
function! airline#extensions#tabline#formatters#nerdfont#format(bufnr, buffers) abort
" Call original formatter.
let originalFormatter = airline#extensions#tabline#formatters#{g:airline#extensions#tabline#formatters#nerdfont#formatter}#format(a:bufnr, a:buffers)
return originalFormatter . printf(' %s', nerdfont#find(bufname(a:bufnr)))
endfunction
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2017-2026 Christian Brabandt et al.
" MIT License. Copyright (c) 2017-2021 Christian Brabandt et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
+1 -3
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
@@ -125,8 +125,6 @@ function! airline#extensions#tabline#tabs#map_keys()
noremap <silent> <Plug>AirlineSelectPrevTab gT
" tabn {count} goes to count tab does not go {count} tab pages forward!
noremap <silent> <Plug>AirlineSelectNextTab :<C-U>exe repeat(':tabn\|', v:count1)<cr>
noremap <silent> <Plug>AirlineSelectFirstTab :<C-u>:tabfirst<CR>
noremap <silent> <Plug>AirlineSelectLastTab :<C-u>:tablast<CR>
endfunction
function! airline#extensions#tabline#tabs#tabnr_formatter(nr, i) abort
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2016-2026 Kevin Sapper et al.
" MIT License. Copyright (c) 2016-2021 Kevin Sapper et al.
" PLugin: https://github.com/s1341/vim-tabws
" vim: et ts=2 sts=2 sw=2
@@ -1,13 +0,0 @@
let g:airline#extensions#tabline#formatters#zhihu#formatter = get(g:, 'airline#extensions#tabline#formatters#zhihu#formatter', 'default')
function! airline#extensions#tabline#formatters#zhihu#format(bufnr, buffers)
let l:name = bufname(a:bufnr)
if match(l:name, 'zhihu://') == -1
return airline#extensions#tabline#formatters#{g:airline#extensions#tabline#formatters#zhihu#formatter}#format(a:bufnr, a:buffers)
endif
let l:prefix = matchstr(fnamemodify(l:name, ':h'), '\d\+')
if l:prefix !=# ''
let l:prefix .= '/'
endif
return l:prefix . fnamemodify(l:name, ':t')
endfunction
-154
View File
@@ -1,154 +0,0 @@
vim9script
# MIT License. Copyright (c) 2013-2026 Christian Brabandt et al.
# vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
var spc = g:airline_symbols.space
var mouse_support = has('patch-9.2.0386')
def IsTabModified(tabnr: number): bool
if !g:airline_detect_modified
return false
endif
for bi in tabpagebuflist(tabnr)
if getbufvar(bi, '&modified')
return true
endif
endfor
return false
enddef
export def Get(): string
var tabnr = get(g:, 'actual_curtabpage', tabpagenr())
var curtab = tabpagenr()
var label = ''
if tabnr == 1
label ..= '%#airline_tabfill#'
label ..= get(g:, 'airline#extensions#tabpanel#label', '[tabs]') .. "\n"
endif
var buflist = tabpagebuflist(tabnr)
var winnr = tabpagewinnr(tabnr)
var bufnr = buflist[winnr - 1]
var title = fnamemodify(bufname(bufnr), ':t')
if empty(title)
title = '[No Name]'
endif
if tabnr == curtab
if IsTabModified(tabnr)
label ..= '%#airline_tabmod#'
else
label ..= '%#airline_tabsel#'
endif
else
if IsTabModified(tabnr)
label ..= '%#airline_tabmod_unsel#'
else
label ..= '%#airline_tab#'
endif
endif
if mouse_support
label ..= '%' .. tabnr .. '[airline#extensions#tabpanel#ClickTab]'
endif
if get(g:, 'airline#extensions#tabline#show_tab_nr', 1)
label ..= spc .. tabnr
label ..= spc
endif
label ..= title .. spc
if mouse_support
label ..= '%[]'
endif
return label
enddef
export def ClickTab(info: dict<any>): number
if info.nclicks != 1 || !empty(info.mods)
return 0
endif
if info.button ==# 'l'
try
silent execute 'tabnext' info.minwid
catch
airline#util#warning('Cannot switch tab')
endtry
elseif info.button ==# 'm'
try
silent execute 'tabclose' info.minwid
catch
airline#util#warning('Cannot close tab')
endtry
endif
return 0
enddef
def LinkHighlights(): void
highlight! link TabPanelFill airline_tabfill
highlight! link TabPanelSel airline_tabsel
highlight! link TabPanel airline_tab
enddef
export def LoadTheme(palette: dict<any>): number
airline#extensions#tabline#load_theme(palette)
LinkHighlights()
return 0
enddef
def Enable(): void
LinkHighlights()
&tabpanel = '%!airline#extensions#tabpanel#Get()'
var cols = get(g:, 'airline#extensions#tabpanel#columns', 20)
var align = get(g:, 'airline#extensions#tabpanel#align', '')
var scrollbar = get(g:, 'airline#extensions#tabpanel#scrollbar', 1)
var opts = 'columns:' .. cols
if !empty(align)
opts ..= ',align:' .. align
endif
if mouse_support
if scrollbar
opts ..= ',scrollbar'
endif
endif
&tabpanelopt = opts
&showtabpanel = 2
enddef
def Disable(): void
highlight! link TabPanelFill NONE
highlight! link TabPanelSel NONE
highlight! link TabPanel NONE
&tabpanel = ''
&tabpanelopt = ''
&showtabpanel = 0
enddef
export def Init(ext: dict<any>): void
if !exists('+tabpanel')
return
endif
autocmd_add([{
group: 'airline_tabpanel',
event: 'User',
pattern: 'AirlineToggledOn',
cmd: 'Enable()',
replace: true,
}])
autocmd_add([{
group: 'airline_tabpanel',
event: 'User',
pattern: 'AirlineToggledOff',
cmd: 'Disable()',
replace: true,
}])
ext.add_theme_func('airline#extensions#tabpanel#LoadTheme')
Enable()
enddef
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/majutsushi/tagbar
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2021 DEMAREST Maxime (maxime@indelog.fr)
" MIT License. Copyright (c) 2021 DEMAREST Maxime (maxime@indelog.fr)
" Plugin: https://github.com/yegappan/taglist/
" vim: et ts=2 sts=2 sw=2
+10 -25
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
@@ -6,46 +6,31 @@ scriptencoding utf-8
call airline#parts#define_function('tmode', 'airline#extensions#term#termmode')
call airline#parts#define('terminal', {'text': get(g:airline_mode_map, 't', 't'), 'accent': 'bold'})
let s:spc = g:airline_symbols.space
function! s:GetAirlineSection()
if exists("g:airline_section_z_term")
let section_z = g:airline_section_z_term
else
let section_z = airline#section#create(['linenr', 'maxlinenr'])
endif
if exists("g:airline_section_a_term")
let section_a = g:airline_section_a_term
else
let section_a = airline#section#create_left(['terminal', 'tmode'])
endif
return [section_a, section_z]
endfunction
let s:section_a = airline#section#create_left(['terminal', 'tmode'])
let s:section_z = airline#section#create(['linenr', 'maxlinenr'])
function! airline#extensions#term#apply(...) abort
if &buftype ==? 'terminal' || bufname(a:2.bufnr)[0] ==? '!'
let sections = s:GetAirlineSection()
let spc = g:airline_symbols.space
call a:1.add_section_spaced('airline_a', sections[0])
call a:1.add_section_spaced('airline_a', s:section_a)
call a:1.add_section_spaced('airline_b', s:neoterm_id(a:2.bufnr))
call a:1.add_section('airline_term', spc.s:termname(a:2.bufnr))
call a:1.add_section('airline_term', s:spc.s:termname(a:2.bufnr))
call a:1.split()
call a:1.add_section('airline_y', '')
call a:1.add_section_spaced('airline_z', sections[1])
call a:1.add_section_spaced('airline_z', s:section_z)
return 1
endif
endfunction
function! airline#extensions#term#inactive_apply(...) abort
if getbufvar(a:2.bufnr, '&buftype') ==? 'terminal'
let sections = s:GetAirlineSection()
let spc = g:airline_symbols.space
call a:1.add_section_spaced('airline_a', sections[0])
call a:1.add_section_spaced('airline_a', s:section_a)
call a:1.add_section_spaced('airline_b', s:neoterm_id(a:2.bufnr))
call a:1.add_section('airline_term', spc.s:termname(a:2.bufnr))
call a:1.add_section('airline_term', s:spc.s:termname(a:2.bufnr))
call a:1.split()
call a:1.add_section('airline_y', '')
call a:1.add_section_spaced('airline_z', sections[1])
call a:1.add_section_spaced('airline_z', s:section_z)
return 1
endif
endfunction
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/edkolev/tmuxline.vim
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/mbbill/undotree
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling, Christian Brabandt et al.
" Plugin: https://github.com/chrisbra/unicode.vim
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/Shougo/unite.vim
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2016-2026 Jerome Reybert et al.
" MIT License. Copyright (c) 2016-2021 Jerome Reybert et al.
" Plugin: https://github.com/jreybert/vimagit
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/cdelledonne/vim-cmake
" vim: et ts=2 sts=2 sw=2
-25
View File
@@ -1,25 +0,0 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" Plugin: https://github.com/VimfanTPdvorak/vimodoro.vim
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
if !exists(':RTM')
finish
endif
function! airline#extensions#vimodoro#apply(...) abort
if exists('t:vimodoro')
if &ft ==# 'vimodoro'
if exists(':PomodoroStatus')
call airline#extensions#apply_left_override('vimodoro', '%{PomodoroStatus(1)}')
else
call airline#extensions#apply_left_override('vimodoro', g:airline_section_y)
endif
endif
endif
endfunction
function! airline#extensions#vimodoro#init(ext) abort
call a:ext.add_statusline_func('airline#extensions#vimodoro#apply')
endfunction
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/lervag/vimtex
" vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/jmcantrell/vim-virtualenv
" vim: et ts=2 sts=2 sw=2
+6 -38
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
" http://got-ravings.blogspot.com/2008/10/vim-pr0n-statusline-whitespace-flags.html
@@ -8,14 +8,11 @@ scriptencoding utf-8
let s:show_message = get(g:, 'airline#extensions#whitespace#show_message', 1)
let s:symbol = get(g:, 'airline#extensions#whitespace#symbol', g:airline_symbols.whitespace)
let s:default_checks = ['indent', 'trailing', 'mixed-indent-file', 'conflicts']
let s:searchcount = exists('*searchcount')
let s:enabled = get(g:, 'airline#extensions#whitespace#enabled', 1)
let s:skip_check_ft = {'make': ['indent', 'mixed-indent-file'],
\ 'csv': ['indent', 'mixed-indent-file'],
\ 'mail': ['trailing'],
\ 'diff': ['trailing'],
\ 'gitcommit': ['trailing']}
\ 'mail': ['trailing']}
function! s:check_mixed_indent()
let indent_algo = get(g:, 'airline#extensions#whitespace#mixed_indent_algo', 0)
@@ -54,8 +51,7 @@ endfunction
function! s:conflict_marker()
" Checks for git conflict markers
" space required for jj conflict marker: #2727
let annotation = '\%([0-9A-Za-z_.: ]\+\)\?'
let annotation = '\%([0-9A-Za-z_.:]\+\)\?'
if match(['rst', 'markdown', 'rmd'], &ft) >= 0
" rst filetypes use '=======' as header
let pattern = '^\%(\%(<\{7} '.annotation. '\)\|\%(>\{7\} '.annotation.'\)\)$'
@@ -65,19 +61,6 @@ function! s:conflict_marker()
return search(pattern, 'nw')
endfunction
function! s:conflict_marker_count()
if !s:searchcount
return 0
endif
" Checks for git conflict markers
" space required for jj conflict marker: #2727
let annotation = '\%([0-9A-Za-z_.: ]\+\)\?'
let pattern = '^<\{7} '.annotation. '$'
let cnt = searchcount(#{pattern: pattern, recompute: 1, timeout: 10})
return has_key(cnt, 'total') ? cnt.total : 0
endfunction
function! airline#extensions#whitespace#check()
let max_lines = get(g:, 'airline#extensions#whitespace#max_lines', 20000)
if &readonly || !&modifiable || !s:enabled || line('$') > max_lines
@@ -125,7 +108,6 @@ function! airline#extensions#whitespace#check()
let conflicts = 0
if index(checks, 'conflicts') > -1
let conflicts = s:conflict_marker()
let conflicts_count = s:conflict_marker_count()
endif
if trailing != 0 || mixed != 0 || long != 0 || !empty(mixed_file) || conflicts != 0
@@ -156,16 +138,10 @@ function! airline#extensions#whitespace#check()
if conflicts != 0
let conflicts_fmt = get(g:, 'airline#extensions#whitespace#conflicts_format', '[%s]conflicts')
let b:airline_whitespace_check .= space.printf(conflicts_fmt, conflicts)
if conflicts_count > 1
let b:airline_whitespace_check .= printf('*%d', conflicts_count)
endif
endif
endif
endif
endif
if airline#util#has_multiline()
return b:airline_whitespace_check
endif
return airline#util#shorten(b:airline_whitespace_check, 120, 9)
endfunction
@@ -183,16 +159,8 @@ function! airline#extensions#whitespace#toggle()
if exists("g:airline#extensions#whitespace#enabled")
let g:airline#extensions#whitespace#enabled = s:enabled
if s:enabled
if airline#util#has_multiline() && exists('g:airline_section_warning2')
if match(g:airline_section_warning2, '#whitespace#check') < 0
let g:airline_section_warning2 .= airline#section#create(['whitespace'])
endif
else
if match(g:airline_section_warning, '#whitespace#check') < 0
let g:airline_section_warning .= airline#section#create(['whitespace'])
endif
endif
if s:enabled && match(g:airline_section_warning, '#whitespace#check') < 0
let g:airline_section_warning .= airline#section#create(['whitespace'])
call airline#update_statusline()
endif
endif
@@ -224,7 +192,7 @@ function! s:ws_refresh()
return
endif
unlet! b:airline_whitespace_check
if get(g:, 'airline_skip_empty_sections', 0) || airline#util#has_multiline()
if get(g:, 'airline_skip_empty_sections', 0)
exe ':AirlineRefresh!'
endif
let b:airline_ws_changedtick = b:changedtick
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/wesQ3/vim-windowswap
" vim: et ts=2 sts=2 sw=2
+2 -2
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 fdm=marker
scriptencoding utf-8
@@ -12,7 +12,7 @@ if exists('*wordcount')
if &filetype ==# 'tex' && exists('b:vimtex') && get(g:, 'airline#extensions#vimtex#wordcount', 0)
" We're in a TeX file and vimtex is a plugin, so use vimtex's wordcount...
if a:visual_mode_active
" not useful?
" not useful?
return
else
return vimtex#misc#wordcount()
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
+4 -19
View File
@@ -1,9 +1,9 @@
" MIT License. Copyright (c) 2017-2026 YoungHoon Rhiu et al.
" MIT License. Copyright (c) 2017-2021 YoungHoon Rhiu et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
if !exists('g:XkbSwitchLib') && !exists('*FcitxCurrentIM') && !has('nvim')
if !exists('g:XkbSwitchLib') && !exists('*FcitxCurrentIM')
finish
endif
@@ -11,25 +11,10 @@ function! airline#extensions#xkblayout#status()
if exists('g:XkbSwitchLib')
let keyboard_layout = libcall(g:XkbSwitchLib, 'Xkb_Switch_getXkbLayout', '')
let keyboard_layout = get(split(keyboard_layout, '\.'), -1, '')
elseif exists('*FcitxCurrentIMwithRime')
let keyboard_layout = FcitxCurrentIMwithRime()
elseif exists('*FcitxCurrentIM')
let keyboard_layout = FcitxCurrentIM()
elseif has('nvim')
try
let keyboard_layout = luaeval('require"ime".current()')
catch /.*/
try
let keyboard_layout = luaeval('require"fcitx5-ui".displayCurrentIM()')
catch /.*/
let keyboard_layout = ''
endtry
endtry
else
let keyboard_layout = ''
" substitute keyboard-us to us
let keyboard_layout = substitute(FcitxCurrentIM(), 'keyboard-', '', 'g')
endif
" substitute keyboard-us to us
let keyboard_layout = substitute(keyboard_layout, 'keyboard-', '', 'g')
let short_codes = get(g:, 'airline#extensions#xkblayout#short_codes', {'2SetKorean': 'KR', 'Chinese': 'CN', 'Japanese': 'JP'})
if has_key(short_codes, keyboard_layout)
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2015-2026 Evgeny Firsov et al.
" MIT License. Copyright (c) 2015-2021 Evgeny Firsov et al.
" Plugin: https://github.com/ycm-core/YouCompleteMe
" vim: et ts=2 sts=2 sw=2
-45
View File
@@ -1,45 +0,0 @@
" MIT License. Copyright (c) 2026-2026 Wu Zhenyu et al
" Plugin: https://github.com/pxwg/zhihu.nvim
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
if !airline#util#has_zhihu()
finish
endif
let s:has_percent_eval = v:version > 802 || (v:version == 802 && has("patch2854"))
function! airline#extensions#zhihu#bufname() abort
let fmod = (exists("+autochdir") && &autochdir) ? ':p' : ':.'
let name = fnamemodify(bufname('%'), fmod)
if empty(name)
return ''
endif
if match(name, 'zhihu://') == -1
return s:has_percent_eval ? '%f' : name
endif
return get(get(b:, 'article', {}), 'title', name)
endfunction
function! airline#extensions#zhihu#init(ext) abort
let prct = s:has_percent_eval ? '%' : ''
if exists("+autochdir") && &autochdir
" if 'acd' is set, vim-airline uses the path section, so we need to redefine this here as well
if get(g:, 'airline_stl_path_style', 'default') ==# 'short'
call airline#parts#define_raw('path', '%<%{'. prct. 'pathshorten(airline#extensions#zhihu#bufname())' . prct . '}%m')
else
call airline#parts#define_raw('path', '%<%{' . prct . 'airline#extensions#zhihu#bufname()' . prct . '}%m')
endif
else
if get(g:, 'airline_stl_path_style', 'default') ==# 'short'
call airline#parts#define_raw('file', '%<%{' . prct . 'pathshorten(airline#extensions#zhihu#bufname())' . prct . '}%m')
else
call airline#parts#define_raw('file', '%<%{' . prct . 'airline#extensions#zhihu#bufname()' . prct . '}%m')
endif
endif
endfunction
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2021-2026 Dmitry Geurkov (d.geurkov@gmail.com)
" MIT License. Copyright (c) 2021 Dmitry Geurkov (d.geurkov@gmail.com)
" Plugin: https://github.com/troydm/zoomwintab.vim
" vim: et ts=2 sts=2 sw=2
+2 -16
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling Christian Brabandt et al.
" vim: et ts=2 sts=2 sw=2 et
scriptencoding utf-8
@@ -186,13 +186,6 @@ if !exists(":def") || !airline#util#has_vim9_script()
call <sid>exec_separator({}, a:from, a:to, a:inverse, '')
endfunction
function! airline#highlighter#remove_separators_for_bufnr(bufnr) abort
" remove all separators, that have the buffer number in their name,
" but do not be too greedy!
let pat = 'c' . a:bufnr . '\(\D\|$\)'
call filter(s:separators, 'v:key !~# pat')
endfunction
function! s:exec_separator(dict, from, to, inverse, suffix) abort
if pumvisible()
return
@@ -536,13 +529,6 @@ else
s:exec_separator({}, from, to, inverse, '')
enddef
def airline#highlighter#remove_separators_for_bufnr(bufnr: string): void
# remove all separators, that have the bufnr in its name, make sure we
# have a full match here
const pat = $'c{bufnr}\(\D\|$\)'
filter(s:separators, (k, v) => k !~# pat)
enddef
def s:exec_separator(dict: dict<any>, from_arg: string, to_arg: string, inverse: bool, suffix: string): void
if pumvisible()
return
@@ -695,5 +681,5 @@ else
endfor
endif
endfor
enddef
enddef
endif
+8 -29
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
@@ -129,21 +129,15 @@ function! airline#init#bootstrap()
call extend(g:airline_symbols, {
\ 'readonly': "\ue0a2",
\ 'whitespace': "\u2632",
\ 'maxlinenr': "\u2261 ",
\ 'maxlinenr': "\u2630 ",
\ 'linenr': " \ue0a1:",
\ 'colnr': " \u2105:",
\ 'branch': "\ue0a0",
\ 'notexists': "\u0246",
\ 'dirty': "\u26a1",
\ 'crypt': nr2char(0x1F512),
\ 'executable': "\u2699",
\ }, 'keep')
" Note: If "\u2046" (Ɇ) does not show up, try to use "\u2204" (∄)
if exists("*setcellwidths")
" whitespace char 0x2632 changed to double-width in Unicode 16,
" mark it single width again
call setcellwidths([[0x2632, 0x2632, 1]])
endif
elseif &encoding==?'utf-8' && !get(g:, "airline_symbols_ascii", 0)
" Symbols for Unicode terminals
call s:check_defined('g:airline_left_sep', "")
@@ -154,14 +148,13 @@ function! airline#init#bootstrap()
call extend(g:airline_symbols, {
\ 'readonly': "\u229D",
\ 'whitespace': "\u2632",
\ 'maxlinenr': "\u2261",
\ 'maxlinenr': "\u2630",
\ 'linenr': " \u33d1:",
\ 'colnr': " \u2105:",
\ 'branch': "\u16A0",
\ 'notexists': "\u0246",
\ 'crypt': nr2char(0x1F512),
\ 'dirty': '!',
\ 'executable': "\u2699",
\ }, 'keep')
else
" Symbols for ASCII terminals
@@ -179,7 +172,6 @@ function! airline#init#bootstrap()
\ 'notexists': '?',
\ 'crypt': 'cr',
\ 'dirty': '!',
\ 'executable': 'x',
\ }, 'keep')
endif
@@ -192,21 +184,18 @@ function! airline#init#bootstrap()
call airline#parts#define_function('crypt', 'airline#parts#crypt')
call airline#parts#define_function('spell', 'airline#parts#spell')
call airline#parts#define_function('filetype', 'airline#parts#filetype')
call airline#parts#define_function('executable', 'airline#parts#executable')
call airline#parts#define('readonly', {
\ 'function': 'airline#parts#readonly',
\ 'accent': 'red',
\ })
if get(g:, 'airline_section_c_only_filename',0)
call airline#parts#define_raw('file', '%t%m')
elseif get(g:, 'airline_stl_path_style', 'default') ==# 'gitrepo'
call airline#parts#define_function('file', 'airline#parts#gitrepo')
else
call airline#parts#define_raw('file', airline#formatter#short_path#format('%f%m'))
endif
call airline#parts#define_raw('path', '%F%m')
call airline#parts#define('linenr', {
\ 'raw': '%{g:airline_symbols.linenr}%2l',
\ 'raw': '%{g:airline_symbols.linenr}%l',
\ 'accent': 'bold'})
call airline#parts#define('maxlinenr', {
\ 'raw': '/%L%{g:airline_symbols.maxlinenr}',
@@ -245,7 +234,6 @@ function! airline#init#bootstrap()
call airline#parts#define_text('bookmark', '')
call airline#parts#define_text('capslock', '')
call airline#parts#define_text('codeium', '')
call airline#parts#define_text('gutentags', '')
call airline#parts#define_text('gen_tags', '')
call airline#parts#define_text('grepper', '')
@@ -259,7 +247,7 @@ endfunction
function! airline#init#sections()
let spc = g:airline_symbols.space
if !exists('g:airline_section_a')
let g:airline_section_a = airline#section#create_left(['mode', 'crypt', 'paste', 'keymap', 'spell', 'capslock', 'xkblayout', 'iminsert', 'executable'])
let g:airline_section_a = airline#section#create_left(['mode', 'crypt', 'paste', 'keymap', 'spell', 'capslock', 'xkblayout', 'iminsert'])
endif
if !exists('g:airline_section_b')
if airline#util#winwidth() > 99
@@ -279,7 +267,7 @@ function! airline#init#sections()
let g:airline_section_gutter = airline#section#create(['%='])
endif
if !exists('g:airline_section_x')
let g:airline_section_x = airline#section#create_right(['coc_current_function', 'bookmark', 'scrollbar', 'tagbar', 'taglist', 'vista', 'gutentags', 'gen_tags', 'omnisharp', 'grepper', 'codeium', 'filetype'])
let g:airline_section_x = airline#section#create_right(['coc_current_function', 'bookmark', 'scrollbar', 'tagbar', 'taglist', 'vista', 'gutentags', 'gen_tags', 'omnisharp', 'grepper', 'filetype'])
endif
if !exists('g:airline_section_y')
let g:airline_section_y = airline#section#create_right(['ffenc'])
@@ -294,16 +282,7 @@ function! airline#init#sections()
if !exists('g:airline_section_error')
let g:airline_section_error = airline#section#create(['ycm_error_count', 'syntastic-err', 'eclim', 'neomake_error_count', 'ale_error_count', 'lsp_error_count', 'nvimlsp_error_count', 'languageclient_error_count', 'coc_error_count', 'vim9lsp_error_count'])
endif
if airline#util#has_multiline()
if !exists('g:airline_section_warning')
let g:airline_section_warning = airline#section#create(['ycm_warning_count', 'syntastic-warn', 'neomake_warning_count', 'ale_warning_count', 'lsp_warning_count', 'nvimlsp_warning_count', 'languageclient_warning_count', 'coc_warning_count', 'vim9lsp_warning_count'])
endif
if !exists('g:airline_section_warning2')
let g:airline_section_warning2 = airline#section#create(['whitespace'])
endif
else
if !exists('g:airline_section_warning')
let g:airline_section_warning = airline#section#create(['ycm_warning_count', 'syntastic-warn', 'neomake_warning_count', 'ale_warning_count', 'lsp_warning_count', 'nvimlsp_warning_count', 'languageclient_warning_count', 'whitespace', 'coc_warning_count', 'vim9lsp_warning_count'])
endif
if !exists('g:airline_section_warning')
let g:airline_section_warning = airline#section#create(['ycm_warning_count', 'syntastic-warn', 'neomake_warning_count', 'ale_warning_count', 'lsp_warning_count', 'nvimlsp_warning_count', 'languageclient_warning_count', 'whitespace', 'coc_warning_count', 'vim9lsp_warning_count'])
endif
endfunction
+18 -18
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling Christian Brabandt et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
@@ -43,24 +43,24 @@ let s:basic16 = [
if !exists(":def") || !airline#util#has_vim9_script()
function! airline#msdos#round_msdos_colors(rgblist)
" Check for values from MSDOS 16 color terminal
let best = []
let min = 100000
let list = s:basic16
for value in list
let t = abs(value[0] - a:rgblist[0]) +
\ abs(value[1] - a:rgblist[1]) +
\ abs(value[2] - a:rgblist[2])
if min > t
let min = t
let best = value
endif
endfor
return index(s:basic16, best)
endfunction
function! airline#msdos#round_msdos_colors(rgblist)
" Check for values from MSDOS 16 color terminal
let best = []
let min = 100000
let list = s:basic16
for value in list
let t = abs(value[0] - a:rgblist[0]) +
\ abs(value[1] - a:rgblist[1]) +
\ abs(value[2] - a:rgblist[2])
if min > t
let min = t
let best = value
endif
endfor
return index(s:basic16, best)
endfunction
finish
finish
else
+2 -31
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
@@ -191,7 +191,7 @@ endfunction
function! airline#parts#filetype()
return (airline#util#winwidth() < 90 && strlen(&filetype) > 3)
\ ? matchstr(&filetype, '...'). (&encoding is? 'utf-8' ? "\u2026" : '>')
\ ? matchstr(&filetype, '...'). (&encoding is? 'utf-8' ? '…' : '>')
\ : &filetype
endfunction
@@ -206,32 +206,3 @@ function! airline#parts#ffenc()
return &fenc.bomb.noeolf.ff
endif
endfunction
function! airline#parts#executable()
if exists("*getfperm") && getfperm(bufname('%')) =~ 'x'
return g:airline_symbols.executable
else
return ''
endif
endfunction
function! airline#parts#gitrepo() abort
if !exists('*FugitiveFind')
return expand('%:p')
endif
let toplevel = FugitiveFind(':/', bufnr(''))
if empty(toplevel)
return expand('%:p')
endif
" Remove trailing separator
let toplevel = substitute(toplevel, '[/\\]$', '', '')
let reponame = fnamemodify(toplevel, ':t')
let fullpath = resolve(expand('%:p'))
" Get file path relative to repo root
if fullpath[:len(toplevel)-1] ==# toplevel
let relpath = fullpath[len(toplevel)+1:]
else
let relpath = expand('%:t')
endif
return reponame .. ':' .. relpath .. (&modified ? '[+]' : '')
endfunction
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 et
scriptencoding utf-8
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 tw=80
scriptencoding utf-8
+1 -19
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling Christian Brabandt et al.
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
@@ -149,18 +149,6 @@ function! airline#util#has_fugitive()
return s:has_fugitive
endfunction
function! airline#util#has_zhihu()
if !has('nvim')
return 0
endif
try
call v:lua.require'zhihu'.setup()
catch
return 0
endtry
return 1
endfunction
function! airline#util#has_gina()
if !exists("s:has_gina")
let s:has_gina = (exists(':Gina') && v:version >= 800)
@@ -250,9 +238,3 @@ function! airline#util#has_vim9_script()
\ get(g:, "airline_experimental", 0))
endfunction
function! airline#util#has_multiline()
" Returns true, if Vim supports multiline statusline (Vim 9.2.0083)
return (exists("+statuslineopt") &&
\ get(g:, "airline_multiline", 0))
endfunction
+78 -188
View File
@@ -1,4 +1,4 @@
*airline.txt* Lean and mean status/tabline that's light as air
*airline.txt* Lean and mean status/tabline that's light as air
*airline* *vim-airline*
_ _ _ _ ~
__ _(_)_ __ ___ __ _(_)_ __| (_)_ __ ___ ~
@@ -6,7 +6,7 @@
\ V /| | | | | | |_____| (_| | | | | | | | | | __/ ~
\_/ |_|_| |_| |_| \__,_|_|_| |_|_|_| |_|\___| ~
~
Version: 0.12
Version: 0.11
=============================================================================
CONTENTS *airline-contents*
@@ -57,8 +57,6 @@ this: >
+---------------------------------------------------------------------------+
| A | B | C X | Y | Z | [...] |
+---------------------------------------------------------------------------+
| [...] |
+---------------------------------------------------------------------------+
The statusline is the colored line at the bottom, which contains the sections
(possibly in different colors):
@@ -75,16 +73,15 @@ section meaning (example)~
Z current position in the file
percentage % ln: current line/number of lines ☰ cn: column
So this: 10% ln:10/100☰ cn:20
means: >
means: >
10% - 10 percent
ln: - line number is
ln: - line number is
10/100☰ - 10 of 100 total lines
cn: - column number is
cn: - column number is
20 - 20
<
[...] additional sections (warning/errors/statistics)
from external plugins (e.g. YCM/syntastic/...)
Can be shown on a second line optionally.
For a better look, those sections can be colored differently, depending on
the mode and whether the current file is 'modified'
@@ -127,9 +124,6 @@ values):
" Currently: Enable Vim9 Script implementation
let g:airline_experimental = 1
* enable multiline feature (requires Vim 9.2.0083) >
let g:airline_multiline = 1
* the separator used on the left side >
let g:airline_left_sep='>'
<
@@ -272,9 +266,9 @@ values):
" disable per-buffer
let b:airline_disable_statusline = 1
< This setting disables setting the 'statusline' option. This allows to use
e.g. the tabline extension (|airline-tabline|) but keep the 'statusline'
option totally configurable by a custom configuration.
< This setting disables setting the 'statusline' option. This allows to use
e.g. the tabline extension (|airline-tabline|) but keep the 'statusline'
option totally configurable by a custom configuration.
* Do not draw separators for empty sections (only for the active window) >
let g:airline_skip_empty_sections = 1
<
@@ -312,12 +306,6 @@ values):
* Display a short path in statusline: >
let g:airline_stl_path_style = 'short'
>
* Display the file path relative to the git repository toplevel directory: >
let g:airline_stl_path_style = 'gitrepo'
<
This shows the path as `reponame:path/to/file` instead of the full path.
Requires fugitive plugin. Falls back to the full path for non-git files.
* Display a only file name in statusline: >
let g:airline_section_c_only_filename = 1
>
@@ -386,7 +374,6 @@ its contents. >
let g:airline_symbols.colnr = ' ㏇:'
let g:airline_symbols.colnr = ' ℅:'
let g:airline_symbols.crypt = '🔒'
let g:airline_symbols.executable = '⚙'
let g:airline_symbols.linenr = '☰'
let g:airline_symbols.linenr = ' ␊:'
let g:airline_symbols.linenr = ' ␤:'
@@ -440,7 +427,7 @@ window.
>
variable names default contents
---------------------------------------------------------------------------
let g:airline_section_a (mode, crypt, paste, spell, iminsert, executable)
let g:airline_section_a (mode, crypt, paste, spell, iminsert)
let g:airline_section_b (hunks, branch)[*]
let g:airline_section_c (bufferline or filename, readonly)
let g:airline_section_gutter (csv)
@@ -451,7 +438,6 @@ window.
languageclient_error_count)
let g:airline_section_warning (ycm_warning_count, syntastic-warn,
languageclient_warning_count, whitespace)
let g:airline_section_warning2 (whitespace) [optional]
" [*] This section needs at least the fugitive extension or else
" it will remain empty
@@ -512,19 +498,19 @@ ale <https://github.com/dense-analysis/ale>
let g:airline#extensions#ale#enabled = 1
* ale error_symbol >
let g:airline#extensions#ale#error_symbol = 'E:'
let airline#extensions#ale#error_symbol = 'E:'
<
* ale warning >
let g:airline#extensions#ale#warning_symbol = 'W:'
let airline#extensions#ale#warning_symbol = 'W:'
* ale show_line_numbers >
let g:airline#extensions#ale#show_line_numbers = 1
let airline#extensions#ale#show_line_numbers = 1
<
* ale open_lnum_symbol >
let g:airline#extensions#ale#open_lnum_symbol = '(L'
let airline#extensions#ale#open_lnum_symbol = '(L'
<
* ale close_lnum_symbol >
let g:airline#extensions#ale#close_lnum_symbol = ')'
let airline#extensions#ale#close_lnum_symbol = ')'
------------------------------------- *airline-battery*
vim-battery <https://github.com/lambdalisue/battery.vim>
@@ -657,26 +643,20 @@ coc <https://github.com/neoclide/coc.nvim>
let g:airline#extensions#coc#enabled = 1
<
* change error symbol: >
let g:airline#extensions#coc#error_symbol = 'E:'
let airline#extensions#coc#error_symbol = 'E:'
<
* change warning symbol: >
let g:airline#extensions#coc#warning_symbol = 'W:'
let airline#extensions#coc#warning_symbol = 'W:'
<
* enable/disable coc status display >
let g:airline#extensions#coc#show_coc_status = 1
g:airline#extensions#coc#show_coc_status = 1
* change the error format (%C - error count, %L - line number): >
let g:airline#extensions#coc#stl_format_err = '%C(L%L)'
let airline#extensions#coc#stl_format_err = '%C(L%L)'
<
* change the warning format (%C - error count, %L - line number): >
let g:airline#extensions#coc#stl_format_warn = '%C(L%L)'
let airline#extensions#coc#stl_format_warn = '%C(L%L)'
<
------------------------------------- *airline-codeium*
vim-codeium <https://github.com/Exafunction/codeium.vim>
* enable/disable codeium.vim integration >
let g:airline#extensions#codeium#enabled = 1
------------------------------------- *airline-commandt*
command-t <https://github.com/wincent/command-t>
@@ -774,7 +754,7 @@ you can use.
<
* configure the layout to not use %(%) grouping items in the statusline.
Try setting this to zero, if you notice bleeding color artifacts >
let g:airline#extensions#default#section_use_groupitems = 1
let airline#extensions#default#section_use_groupitems = 1
<
------------------------------------- *airline-denite*
Denite <https://github.com/Shougo/denite.nvim>
@@ -796,7 +776,7 @@ eclim <https://eclim.org>
|airline-syntastic| extension. >
let g:airline#extensions#eclim#enabled = 1
------------------------------------- *airline-fern*
------------------------------------- *airline-fern*
fern.vim <https://github.com/lambdalisue/fern.vim>
Airline displays the fern.vim specific statusline.
@@ -903,19 +883,19 @@ LanguageClient <https://github.com/autozimu/LanguageClient-neovim>
let g:airline#extensions#languageclient#enabled = 1
* languageclient error_symbol >
let g:airline#extensions#languageclient#error_symbol = 'E:'
let airline#extensions#languageclient#error_symbol = 'E:'
<
* languageclient warning_symbol >
let g:airline#extensions#languageclient#warning_symbol = 'W:'
let airline#extensions#languageclient#warning_symbol = 'W:'
* languageclient show_line_numbers >
let g:airline#extensions#languageclient#show_line_numbers = 1
let airline#extensions#languageclient#show_line_numbers = 1
<
* languageclient open_lnum_symbol >
let g:airline#extensions#languageclient#open_lnum_symbol = '(L'
let airline#extensions#languageclient#open_lnum_symbol = '(L'
<
* languageclient close_lnum_symbol >
let g:airline#extensions#languageclient#close_lnum_symbol = ')'
let airline#extensions#languageclient#close_lnum_symbol = ')'
------------------------------------- *airline-localsearch*
localsearch <https://github.com/mox-mox/vim-localsearch>
@@ -935,25 +915,25 @@ lsp <https://github.com/prabirshrestha/vim-lsp>
let g:airline#extensions#lsp#enabled = 1
* lsp error_symbol >
let g:airline#extensions#lsp#error_symbol = 'E:'
let airline#extensions#lsp#error_symbol = 'E:'
<
* lsp warning >
let g:airline#extensions#lsp#warning_symbol = 'W:'
let airline#extensions#lsp#warning_symbol = 'W:'
* lsp show_line_numbers >
let g:airline#extensions#lsp#show_line_numbers = 1
let airline#extensions#lsp#show_line_numbers = 1
<
* lsp open_lnum_symbol >
let g:airline#extensions#lsp#open_lnum_symbol = '(L'
let airline#extensions#lsp#open_lnum_symbol = '(L'
<
* lsp close_lnum_symbol >
let g:airline#extensions#lsp#close_lnum_symbol = ')'
let airline#extensions#lsp#close_lnum_symbol = ')'
<
* lsp progress skip time
Suppresses the frequency of status line updates.
Prevents heavy operation when using a language server that sends frequent progress notifications.
Set 0 to disable. >
let g:airline#extensions#lsp#progress_skip_time = 0.3 (default)
g:airline#extensions#lsp#progress_skip_time = 0.3 (default)
<
------------------------------------- *airline-neomake*
@@ -963,23 +943,11 @@ neomake <https://github.com/neomake/neomake>
let g:airline#extensions#neomake#enabled = 1
* neomake error_symbol >
let g:airline#extensions#neomake#error_symbol = 'E:'
let airline#extensions#neomake#error_symbol = 'E:'
<
* neomake warning >
let g:airline#extensions#neomake#warning_symbol = 'W:'
let airline#extensions#neomake#warning_symbol = 'W:'
<
------------------------------------- *airline-nerdfont*
NerdFont <https://github.com/lambdalisue/nerdfont.vim>
* enable/disable nerdfont integration >
let g:airline#extensions#nerdfont#enabled = 1
< default: 1
* nerdfont's tabline formatter >
let g:airline#extensions#tabline#formatter = 'nerdfont'
let g:airline#extensions#tabline#formatters#nerdfont#formatter = 'default'
< default: 'default'
------------------------------------- *airline-nerdtree*
NerdTree <https://github.com/preservim/nerdtree.git>
@@ -1004,19 +972,19 @@ nvimlsp <https://github.com/neovim/nvim-lsp>
let g:airline#extensions#nvimlsp#enabled = 1
* nvimlsp error_symbol >
let g:airline#extensions#nvimlsp#error_symbol = 'E:'
let airline#extensions#nvimlsp#error_symbol = 'E:'
<
* nvimlsp warning - needs v:lua.vim.diagnostic.get
let g:airline#extensions#nvimlsp#warning_symbol = 'W:'
let airline#extensions#nvimlsp#warning_symbol = 'W:'
* nvimlsp show_line_numbers - needs v:lua.vim.diagnostic.get
let g:airline#extensions#nvimlsp#show_line_numbers = 1
let airline#extensions#nvimlsp#show_line_numbers = 1
* nvimlsp open_lnum_symbol - needs v:lua.vim.diagnostic.get
let g:airline#extensions#nvimlsp#open_lnum_symbol = '(L'
let airline#extensions#nvimlsp#open_lnum_symbol = '(L'
* nvimlsp close_lnum_symbol - needs v:lua.vim.diagnostic.get
let g:airline#extensions#nvimlsp#close_lnum_symbol = ')'
let airline#extensions#nvimlsp#close_lnum_symbol = ')'
------------------------------------- *airline-obsession*
vim-obsession <https://github.com/tpope/vim-obsession>
@@ -1024,11 +992,8 @@ vim-obsession <https://github.com/tpope/vim-obsession>
* enable/disable vim-obsession integration >
let g:airline#extensions#obsession#enabled = 1
* set marked window indicator string when recording session>
* set marked window indicator string >
let g:airline#extensions#obsession#indicator_text = '$'
* set marked window indicator string when recording session is paused>
let g:airline#extensions#obsession#indicator_text_paused = ''
<
------------------------------------- *airline-omnisharp*
OmniSharp <https://github.com/OmniSharp/omnisharp-vim>
@@ -1063,7 +1028,7 @@ promptline <https://github.com/edkolev/promptline.vim>
* configure the path to the snapshot .sh file. Mandatory option. The created
file should be sourced by the shell on login >
" in .vimrc
let g:airline#extensions#promptline#snapshot_file = "~/.shell_prompt.sh"
airline#extensions#promptline#snapshot_file = "~/.shell_prompt.sh"
" in .bashrc/.zshrc
[ -f ~/.shell_prompt.sh ] && source ~/.shell_prompt.sh
@@ -1072,10 +1037,10 @@ promptline <https://github.com/edkolev/promptline.vim>
let g:airline#extensions#promptline#enabled = 0
<
* configure which mode colors should be used in prompt >
let g:airline#extensions#promptline#color_template = 'normal' (default)
let g:airline#extensions#promptline#color_template = 'insert'
let g:airline#extensions#promptline#color_template = 'visual'
let g:airline#extensions#promptline#color_template = 'replace'
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
@@ -1126,16 +1091,16 @@ syntastic <https://github.com/vim-syntastic/syntastic>
adjusting the statusline.
* syntastic error_symbol >
let g:airline#extensions#syntastic#error_symbol = 'E:'
let airline#extensions#syntastic#error_symbol = 'E:'
<
* syntastic statusline error format (see |syntastic_stl_format|) >
let g:airline#extensions#syntastic#stl_format_err = '%E{[%fe(#%e)]}'
let airline#extensions#syntastic#stl_format_err = '%E{[%fe(#%e)]}'
* syntastic warning >
let g:airline#extensions#syntastic#warning_symbol = 'W:'
let airline#extensions#syntastic#warning_symbol = 'W:'
<
* syntastic statusline warning format (see |syntastic_stl_format|) >
let g:airline#extensions#syntastic#stl_format_warn = '%W{[%fw(#%w)]}'
let airline#extensions#syntastic#stl_format_warn = '%W{[%fw(#%w)]}'
<
------------------------------------- *airline-tabline*
Note: If you're using the ctrlspace tabline only the option marked with (c)
@@ -1143,11 +1108,6 @@ are supported!
* enable/disable enhanced tabline. (c) >
let g:airline#extensions#tabline#enabled = 0
<
* enable/disable displaying buffers with a single tab. (c) >
let g:airline#extensions#tabline#show_buffers = 1
Note: With `show_buffers = 0`, tabs behave like the vim default tabline.
* enable/disable displaying open splits per tab (only when tabs are opened) >
let g:airline#extensions#tabline#show_splits = 1
@@ -1155,9 +1115,12 @@ are supported!
* 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 or Vim with at least v9.2.0338, then you can
click on the tabline with the left mouse button to switch to that buffer, and
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:
@@ -1171,8 +1134,6 @@ with the middle mouse button to delete that buffer.
* enable/disable displaying tabs, regardless of number. (c) >
let g:airline#extensions#tabline#show_tabs = 1
Note: To display only tabs and no buffers, set `show_buffers=0` in addition.
* enable/disable displaying number of tabs in the right side (c) >
let g:airline#extensions#tabline#show_tab_count = 1
@@ -1225,7 +1186,7 @@ Note: Not displayed if the number of tabs is less than 1
let g:airline#extensions#tabline#overflow_marker = '…'
* always show current tabpage/buffer first >
let g:airline#extensions#tabline#current_first = 1
let airline#extensions#tabline#current_first = 1
< default: 0
* enable/disable displaying index of the buffer.
@@ -1236,7 +1197,7 @@ Note: Not displayed if the number of tabs is less than 1
In default mode, when the variable is 1 Up to 10 mappings will be
exposed. Note: As 10 and 1 have same prefix, we use 0 to replace 10. So,
<leader>0 will jump to tenth buffer. Those mappings are not automatically
created, vim-airline just exposes those `<Plug>AirlineSelectTab` keys
created, vim-airline just exposes those `<Plug>AirlineSeelctTab` keys
for you to map to a convenient key >
let g:airline#extensions#tabline#buffer_idx_mode = 1
@@ -1279,14 +1240,9 @@ Note: Not displayed if the number of tabs is less than 1
This matches that of the numbering scheme of |:buffers|, letting
`<Plug>AirlineSelectTab67` to reference buffer 67.
Note: To avoid ambiguity, there won't be
<Plug>AirlineSelectTab1 - <Plug>AirlineSelectTab9
maps in mode 2 and 3.
Note: To avoid ambiguity, there won't be <Plug>AirlineSelectTab1
- <Plug>AirlineSelectTab9 maps in mode 2 and 3.
To go to the very first/last buffer, you can use: >
nmap <Leader>FT <Plug>AirlineSelectFirstTab
nmap <Leader>LT <Plug>AirlineSelectLastTab
<
Note: Mappings will be ignored for filetypes that match
`g:airline#extensions#tabline#keymap_ignored_filetypes`.
@@ -1432,7 +1388,7 @@ Note: Not displayed if the number of tabs is less than 1
* configure pattern to be ignored on BufAdd autocommand >
" fixes unnecessary redraw, when e.g. opening Gundo window
let g:airline#extensions#tabline#ignore_bufadd_pat =
let airline#extensions#tabline#ignore_bufadd_pat =
\ '\c\vgundo|undotree|vimfiler|tagbar|nerd_tree'
Note: Enabling this extension will modify 'showtabline' and 'guioptions'.
@@ -1440,67 +1396,32 @@ 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 g:airline#extensions#tabline#disable_refresh = 0
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 g:airline#extensions#tabline#middle_click_preserves_windows = 1
let airline#extensions#tabline#middle_click_preserves_windows = 1
<
------------------------------------- *airline-tabline-hlgroups*
*airline-tabline-hlgroups*
When the tabline is enabled, vim-airline exposes the following highlighting
groups:
airline_tab: default highlighting group for the tabline
airline_tab_right: idem, but for the right side of the tabline
airline_tab: default highlighting group for the tabline
airline_tab_right: idem, but for the right side of the tabline
airline_tabsel: highlighting group of the selected item
airline_tabsel: highlighting group of the selected item
airline_tabsel_right: idem, but for the right side of the tabline
airline_tabmod: highlighting group for a 'modified' buffer
airline_tabmod_right: idem, but on the right side
airline_tabmod_unsel: unselected tab with modified buffer
airline_tabmod_unsel_right: (unused)
airline_tabtype: label group used by ctrlspace and tabws
airline_tabfill: highlighting group for the filler space
airline_tabfill: highlighting group for the filler space
airline_tablabel: highlighting group for the label
airline_tablabel_right: highlighting group for the label on the right side
airline_tabhid: hidden buffer
airline_tabhid: hidden buffer
airline_tabhid_right: idem, but on the right
------------------------------------- *airline-tabpanel*
Vim supports a vertical tab panel (see |tabpanel|) that displays tab pages
in a vertical side column. This extension provides airline-styled formatting
for the tab panel. Requires a Vim version that supports 'tabpanel' (at least
Vim >9.1.1391).
* enable/disable tabpanel integration >
let g:airline#extensions#tabpanel#enabled = 1
< default: 0
* configure the width of the tab panel (in columns) >
let g:airline#extensions#tabpanel#columns = 20
< default: 20
* configure the alignment of the tab panel >
let g:airline#extensions#tabpanel#align = 'left'
< default: '' (uses Vim's default)
* reserve a one-column scrollbar in the tabpanel showing the current scroll
position; clicking or dragging the thumb jumps to that position (requires
Vim patch 9.2.386) >
let g:airline#extensions#tabpanel#scrollbar = 1
< default: 1
Note: The tabpanel extension reuses the tabline highlight groups
(|airline-tabline-hlgroups|) and respects the tabline tab number settings
(|g:airline#extensions#tabline#show_tab_nr|,
|g:airline#extensions#tabline#tab_nr_type|,
|g:airline#extensions#tabline#tabnr_formatter|).
Note: Starting with Vim v9.2.0386 Vim adds mouse support for the tabpanel
and each tab entry is clickable: a left mouse click switches to the tab and a
middle click closes it, however 'mouse' setting needs to be enabled.
------------------------------------- *airline-scrollbar*
Displays an Ascii Scrollbar for active windows with a width > 200.
@@ -1525,14 +1446,6 @@ Vim-Airline comes with a small extension for the styling the builtin
let g:airline#extensions#term#enabled = 1
default: 1
* Use custom section_z >
let g:airline_section_z_term = '%p%% ☰ %l/%L, %v'
default: airline#section#create(['linenr', 'maxlinenr'])
* Use custom section_a >
let g:airline_section_a_term = '%p%% ☰ %l/%L, %v'
default: airline#section#create_left(['terminal', 'tmode'])
------------------------------------- *airline-tabws*
vim-tabws <https://github.com/s1341/vim-tabws>
@@ -1573,15 +1486,15 @@ tmuxline <https://github.com/edkolev/tmuxline.vim>
let g:airline#extensions#tmuxline#enabled = 0
<
* configure which mode colors should be used in tmux statusline >
let g:airline#extensions#tmuxline#color_template = 'normal' (default)
let g:airline#extensions#tmuxline#color_template = 'insert'
let g:airline#extensions#tmuxline#color_template = 'visual'
let g:airline#extensions#tmuxline#color_template = 'replace'
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 >
let g:airline#extensions#tmuxline#snapshot_file =
airline#extensions#tmuxline#snapshot_file =
\ "~/.tmux-statusline-colors.conf"
<
------------------------------------- *airline-undotree*
@@ -1604,13 +1517,13 @@ Unite <https://github.com/Shougo/unite.vim>
vim9lsp <https://github.com/yegappan/lsp>
* enable/disable vim9lsp integration >
let g:airline#extensions#vim9lsp#enabled = 1
let airline#extensions#vim9lsp#enabled = 1
<
* vim9lsp error_symbol >
let g:airline#extensions#vim9lsp#error_symbol = 'E:'
let airline#extensions#vim9lsp#error_symbol = 'E:'
<
* vim9lsp warning >
let g:airline#extensions#vim9lsp#warning_symbol = 'W:'
let airline#extensions#vim9lsp#warning_symbol = 'W:'
<
------------------------------------- *airline-vimagit*
vimagit <https://github.com/jreybert/vimagit>
@@ -1624,11 +1537,6 @@ Vim-CMake <https://github.com/cdelledonne/vim-cmake>
* enable/disable Vim-CMake integration >
let g:airline#extensions#vimcmake#enabled = 1
<
------------------------------------- *airline-vimodoro*
Vimodoro <https://github.com/VimfanTPdvorak/vimodoro>
No configuration available.
------------------------------------- *airline-vimtex*
vimtex <https://github.com/lervag/vimtex>
@@ -1745,7 +1653,7 @@ vista.vim <https://github.com/liuchengxu/vista.vim>
* configure, which filetypes have special treatment of /* */ comments,
matters for mix-indent-file algorithm: >
let g:airline#extensions#c_like_langs =
let airline#extensions#c_like_langs =
\ ['arduino', 'c', 'cpp', 'cuda', 'go', 'javascript', 'ld', 'php']
<
* disable whitespace checking for an individual buffer >
@@ -1844,11 +1752,7 @@ details on how to use it, see e.g. <https://github.com/ierton/xkb-switch>
let g:XkbSwitchLib = '/usr/local/lib/libInputSourceSwitcher.dylib'
<
Linux with fcitx (Install https://github.com/fcitx/fcitx5):
Install https://github.com/lilydjwg/fcitx.vim to get `FcitxCurrentIM()`
or https://github.com/black-desk/fcitx5-ui.nvim to get
`luaeval('require"fcitx5-ui".displayCurrentIM()')`
or https://github.com/Freed-Wu/ime.nvim to get
`luaeval('require"ime".current()')`
Install https://github.com/lilydjwg/fcitx.vim) to get `FcitxCurrentIM()`
------------------------------------- *airline-xtabline*
xtabline <https://github.com/mg979/vim-xtabline>
@@ -1948,19 +1852,6 @@ default: '> Zoomed'
default: ''
------------------------------------- *airline-zhihu*
zhihu.nvim <https://github.com/pxwg/zhihu.nvim>
* enable/disable zhihu integration >
let g:airline#extensions#zhihu#enabled = 1
< default: 1
* zhihu's tabline formatter >
let g:airline#extensions#tabline#formatter = 'zhihu'
let g:airline#extensions#tabline#formatters#nerdfont#formatter = 'default'
< default: 'default'
=============================================================================
ADVANCED CUSTOMIZATION *airline-advanced-customization*
@@ -2000,7 +1891,6 @@ The following list of parts are predefined by vim-airline.
* `iminsert` displays the current insert method
* `paste` displays the paste indicator
* `crypt` displays the crypted indicator
* `exectuable` displays the executable indicator
* `spell` displays the spell indicator
* `filetype` displays the file type
* `readonly` displays the read only indicator
@@ -2251,7 +2141,7 @@ Contributions and pull requests are welcome.
=============================================================================
LICENSE *airline-license*
MIT License. Copyright © 2013-2026 Bailey Ling, Christian Brabandt, Mike
MIT License. Copyright © 2013-2021 Bailey Ling, Christian Brabandt, Mike
Hartington et al.
vim:tw=78:ts=8:ft=help:norl:
+49 -77
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" MIT License. Copyright (c) 2013-2021 Bailey Ling, Christian Brabandt et al.
" vim: et ts=2 sts=2 sw=2
let s:save_cpo = &cpo
@@ -6,7 +6,7 @@ set cpo&vim
scriptencoding utf-8
if &compatible || v:version < 702 || (exists('g:loaded_airline') && g:loaded_airline)
if &cp || v:version < 702 || (exists('g:loaded_airline') && g:loaded_airline)
finish
endif
let g:loaded_airline = 1
@@ -25,11 +25,11 @@ function! s:init()
if s:theme_in_vimrc
try
if g:airline_theme is# 'random'
let g:airline_theme = s:random_theme()
let g:airline_theme=s:random_theme()
endif
let palette = g:airline#themes#{g:airline_theme}#palette
catch
call airline#util#warning(printf('Could not resolve airline theme "%s".', g:airline_theme))
call airline#util#warning(printf('Could not resolve airline theme "%s". Themes have been migrated to github.com/vim-airline/vim-airline-themes.', g:airline_theme))
let g:airline_theme = 'dark'
endtry
try
@@ -48,7 +48,6 @@ function! s:init()
endfunction
let s:active_winnr = -1
function! s:on_window_changed(event)
" don't trigger for Vim popup windows
if &buftype is# 'popup'
@@ -59,32 +58,20 @@ function! s:on_window_changed(event)
" do not trigger for previewwindows
return
endif
let s:active_winnr = winnr()
" Handle each window only once, since we might come here several times for
" different autocommands.
let key = [bufnr('%'), s:active_winnr, winnr('$'), tabpagenr(), &filetype]
if get(g:, 'airline_last_window_changed', []) == key
\ && &statusline is# '%!airline#statusline('.s:active_winnr.')'
\ && &filetype !~? 'gitcommit'
let l:key = [bufnr('%'), s:active_winnr, winnr('$'), tabpagenr(), &ft]
if get(g:, 'airline_last_window_changed', []) == l:key
\ && &stl is# '%!airline#statusline('.s:active_winnr.')'
\ && &ft !~? 'gitcommit'
" fugitive is special, it changes names and filetypes several times,
" make sure the caching does not get into its way
if a:event ==# 'BufUnload'
" in the BufUnload event, make sure the cacheing does not prevent
" removing stale entries
call airline#highlighter#remove_separators_for_bufnr(expand('<abuf>'))
endif
return
endif
let g:airline_last_window_changed = key
let g:airline_last_window_changed = l:key
call s:init()
call airline#update_statusline()
if a:event ==# 'BufUnload'
call airline#highlighter#remove_separators_for_bufnr(expand('<abuf>'))
endif
endfunction
function! s:on_focus_gained()
@@ -93,8 +80,7 @@ function! s:on_focus_gained()
endif
if airline#util#try_focusgained()
unlet! w:airline_lastmode
call s:airline_refresh(1)
unlet! w:airline_lastmode | :call <sid>airline_refresh(1)
endif
endfunction
@@ -112,6 +98,8 @@ function! s:on_colorscheme_changed()
if !s:theme_in_vimrc
call airline#switch_matching_theme()
endif
" couldn't find a match, or theme was defined, just refresh
call airline#load_theme()
endfunction
@@ -122,17 +110,18 @@ endfunction
function! s:airline_toggle()
if exists("#airline")
augroup airline
autocmd!
au!
augroup END
augroup! airline
if exists("s:stl")
let &statusline = s:stl
let &stl = s:stl
endif
if exists("s:tal")
let [&tabline, &showtabline] = s:tal
let [&tal, &showtabline] = s:tal
endif
call airline#highlighter#reset_hlcache()
call airline#util#doautocmd('AirlineToggledOff')
else
let s:stl = &statusline
@@ -148,72 +137,62 @@ function! s:airline_toggle()
autocmd ColorScheme * call <sid>on_colorscheme_changed()
" Set all statuslines to inactive
autocmd FocusLost * call airline#update_statusline_focuslost()
" Refresh airline for :syntax off
autocmd SourcePre */syntax/syntax.vim
\ call airline#extensions#tabline#buffers#invalidate()
autocmd VimEnter * call <sid>on_window_changed('VimEnter')
autocmd WinEnter * call <sid>on_window_changed('WinEnter')
autocmd FileType * call <sid>on_window_changed('FileType')
autocmd BufWinEnter * call <sid>on_window_changed('BufWinEnter')
autocmd BufUnload * call <sid>on_window_changed('BufUnload')
if exists('##CompleteDone')
autocmd CompleteDone * call <sid>on_window_changed('CompleteDone')
endif
" non-trivial number of external plugins use eventignore=all, so we need to account for that
autocmd CursorMoved * call <sid>on_cursor_moved()
autocmd VimResized * call <sid>on_focus_gained()
autocmd VimResized * call <sid>on_focus_gained()
if exists('*timer_start') && exists('*funcref') && &eventignore !~? 'focusgained'
" do not trigger FocusGained on startup, it might erase the intro screen (see #1817)
" needs funcref() (needs 7.4.2137) and timers (7.4.1578)
let Handler = funcref('<sid>FocusGainedHandler')
let s:timer = timer_start(5000, Handler)
let Handler=funcref('<sid>FocusGainedHandler')
let s:timer=timer_start(5000, Handler)
else
autocmd FocusGained * call s:on_focus_gained()
autocmd FocusGained * call <sid>on_focus_gained()
endif
if exists("##TerminalOpen")
" Using the same function with the TermOpen autocommand
" breaks for Neovim see #1828, looks like a neovim bug.
autocmd TerminalOpen * call airline#load_theme()
autocmd TerminalOpen * :call airline#load_theme() " reload current theme for Terminal, forces the terminal extension to be loaded
endif
autocmd TabEnter * unlet! w:airline_lastmode | let w:airline_active = 1
autocmd TabEnter * :unlet! w:airline_lastmode | let w:airline_active=1
autocmd BufWritePost */autoload/airline/themes/*.vim
\ execute 'source '.split(globpath(&rtp, 'autoload/airline/themes/'.g:airline_theme.'.vim', 1), "\n")[0]
\ exec 'source '.split(globpath(&rtp, 'autoload/airline/themes/'.g:airline_theme.'.vim', 1), "\n")[0]
\ | call airline#load_theme()
autocmd User AirlineModeChanged nested call airline#mode_changed()
if get(g:, 'airline_statusline_ontop', 0)
" Force update of tabline more often
autocmd InsertEnter,InsertLeave,CursorMovedI * call airline#update_tabline()
autocmd InsertEnter,InsertLeave,CursorMovedI * :call airline#update_tabline()
endif
if exists("##ModeChanged")
autocmd ModeChanged * call airline#update_tabline()
autocmd ModeChanged * :call airline#update_tabline()
endif
augroup END
if !airline#util#stl_disabled(winnr())
if &laststatus < 2
let scroll_bak = &scroll
let _scroll=&scroll
if !get(g:, 'airline_statusline_ontop', 0)
set laststatus=2
endif
let &scroll = scroll_bak
if &scroll != _scroll
let &scroll = _scroll
endif
endif
endif
if airline#util#has_multiline() && &statuslineopt !~# 'maxheight:'
set statuslineopt+=maxheight:2
endif
if s:airline_initialized
call s:on_window_changed('Init')
endif
@@ -230,11 +209,11 @@ function! s:airline_theme(...)
if a:0
try
let theme = a:1
if theme is# 'random'
if theme is# 'random'
let theme = s:random_theme()
endif
call airline#switch_theme(theme)
catch
catch " discard error
endtry
if a:1 is# 'random'
echo g:airline_theme
@@ -246,7 +225,7 @@ endfunction
function! s:airline_refresh(...)
" a:1, fast refresh, do not reload the theme
let fast = !empty(get(a:000, 0, 0))
let fast=!empty(get(a:000, 0, 0))
if !exists("#airline")
" disabled
return
@@ -263,10 +242,10 @@ endfunction
function! s:FocusGainedHandler(timer)
if exists("s:timer") && a:timer == s:timer && exists('#airline') && &eventignore !~? 'focusgained'
augroup airline
autocmd FocusGained * call s:on_focus_gained()
au FocusGained * call s:on_focus_gained()
augroup END
endif
endfunction
endfu
function! s:airline_extensions()
let loaded = airline#extensions#get_loaded_extensions()
@@ -279,45 +258,39 @@ function! s:airline_extensions()
echohl Title
echo printf("%-15s\t%s\t%s", "Extension", "Extern", "Status")
echohl Normal
let set = []
let not_loaded = []
let set=[]
for ext in sort(files)
" prevent duplicates
if index(set + not_loaded, ext) > -1
continue
endif
let indx = match(loaded, '^'.ext.'\*\?$')
if indx == -1
call add(not_loaded, ext)
if index(set, ext) > -1
continue
endif
let indx=match(loaded, '^'.ext.'\*\?$')
let external = (indx > -1 && loaded[indx] =~ '\*$')
echo printf("%-15s\t%s\t%sloaded", ext, external, indx == -1 ? 'not ' : '')
call add(set, ext)
let external = (loaded[indx] =~ '\*$')
echo printf("%-15s\t%s\tloaded", ext, external)
endfor
for ext in not_loaded
echo printf("%-15s\t%s\tnot loaded", ext, 0)
endfor
endfunction
function! s:rand(max) abort
if exists("*rand")
" Needs Vim 8.1.2342
let number = rand()
let number=rand()
elseif has("reltime")
let timerstr = reltimestr(reltime())
let number = split(timerstr, '\.')[1] + 0
elseif has("win32") && &shell =~? 'cmd'
let number = system("echo %random%") + 0
let timerstr=reltimestr(reltime())
let number=split(timerstr, '\.')[1]+0
elseif has("win32") && &shell =~ 'cmd'
let number=system("echo %random%")+0
else
" best effort, bash and zsh provide $RANDOM
let number = expand("$RANDOM") + 0
" cmd.exe on windows provides %random%, but expand()
" does not seem to be able to expand this correctly.
" In the worst case, this always returns zero
let number=expand("$RANDOM")+0
endif
return number % a:max
endfunction
function! s:random_theme() abort
let themes = airline#util#themes('')
let themes=airline#util#themes('')
return themes[s:rand(len(themes))]
endfunction
@@ -329,7 +302,6 @@ command! AirlineExtensions call s:airline_extensions()
call airline#init#bootstrap()
call s:airline_toggle()
if exists("v:vim_did_enter") && v:vim_did_enter
call <sid>on_window_changed('VimEnter')
endif

Some files were not shown because too many files have changed in this diff Show More