Support Multiple Cursor mode

Detect the use of plugin https://github.com/mg979/vim-visual-multi
and show mode "MULTI" when it is active.

closes #1933
This commit is contained in:
Christian Brabandt 2019-06-11 09:45:53 +02:00
parent 826561daf3
commit 28453d7038
No known key found for this signature in database
GPG Key ID: F3F92DA383FDDE09
4 changed files with 26 additions and 18 deletions

View File

@ -20,6 +20,7 @@ This is the Changelog for the vim-airline project.
recreating the highlighting groups (which might have a serious performance recreating the highlighting groups (which might have a serious performance
impact if done very often, as might be the case when the configuration variable impact if done very often, as might be the case when the configuration variable
`airline_skip_empty_sections` is active). `airline_skip_empty_sections` is active).
- airline can now also detect multiple cursor mode (issue #1933)
## [0.10] - 2018-12-15 ## [0.10] - 2018-12-15
- New features - New features

View File

@ -226,7 +226,11 @@ function! airline#check_mode(winnr)
else else
let l:mode = ['normal'] let l:mode = ['normal']
endif endif
if index(['Rv', 'no', 'ni', 'ix', 'ic'], l:m) == -1 if exists("*VMInfos") && !empty(VMInfos())
" Vim plugin Multiple Cursors https://github.com/mg979/vim-visual-multi
let l:m = 'multi'
endif
if index(['Rv', 'no', 'ni', 'ix', 'ic', 'multi'], l:m) == -1
let l:m = l:m[0] let l:m = l:m[0]
endif endif
let w:airline_current_mode = get(g:airline_mode_map, l:m, l:m) let w:airline_current_mode = get(g:airline_mode_map, l:m, l:m)

View File

@ -40,6 +40,7 @@ function! airline#init#bootstrap()
\ 'i' : 'INSERT', \ 'i' : 'INSERT',
\ 'ic' : 'INSERT COMPL', \ 'ic' : 'INSERT COMPL',
\ 'ix' : 'INSERT COMPL', \ 'ix' : 'INSERT COMPL',
\ 'multi' : 'MULTI',
\ 'n' : 'NORMAL', \ 'n' : 'NORMAL',
\ 'ni' : '(INSERT)', \ 'ni' : '(INSERT)',
\ 'no' : 'OP PENDING', \ 'no' : 'OP PENDING',

View File

@ -176,24 +176,26 @@ values):
" or copy paste the following into your vimrc for shortform text " or copy paste the following into your vimrc for shortform text
let g:airline_mode_map = { let g:airline_mode_map = {
\ '__' : '-', \ '__' : '-',
\ 'c' : 'C', \ 'c' : 'C',
\ 'i' : 'I', \ 'i' : 'I',
\ 'ic' : 'I', \ 'ic' : 'I',
\ 'ix' : 'I', \ 'ix' : 'I',
\ 'n' : 'N', \ 'n' : 'N',
\ 'ni' : 'N', \ 'multi' : 'M',
\ 'no' : 'N', \ 'ni' : 'N',
\ 'R' : 'R', \ 'no' : 'N',
\ 'Rv' : 'R', \ 'R' : 'R',
\ 's' : 'S', \ 'Rv' : 'R',
\ 'S' : 'S', \ 's' : 'S',
\ '' : 'S', \ 'S' : 'S',
\ 't' : 'T', \ '' : 'S',
\ 'v' : 'V', \ 't' : 'T',
\ 'V' : 'V', \ 'v' : 'V',
\ '' : 'V', \ 'V' : 'V',
\ '' : 'V',
\ } \ }
Note: 'multi' is for displaying the multiple cursor mode
< <
* define the set of filename match queries which excludes a window from having * define the set of filename match queries which excludes a window from having
its statusline modified > its statusline modified >