diff --git a/autoload/airline/extensions/branch.vim b/autoload/airline/extensions/branch.vim index 422a65ce..d34cd239 100644 --- a/autoload/airline/extensions/branch.vim +++ b/autoload/airline/extensions/branch.vim @@ -162,6 +162,7 @@ function! airline#extensions#branch#head() if empty(b:airline_head) || !found_fugitive_head && !s:check_in_path() let b:airline_head = '' endif + let b:airline_head = airline#util#shorten(b:airline_head, 120, 9) return b:airline_head endfunction diff --git a/autoload/airline/extensions/whitespace.vim b/autoload/airline/extensions/whitespace.vim index 825ee50b..15460797 100644 --- a/autoload/airline/extensions/whitespace.vim +++ b/autoload/airline/extensions/whitespace.vim @@ -106,12 +106,7 @@ function! airline#extensions#whitespace#check() endif endif endif - if winwidth(0) < 120 && len(split(b:airline_whitespace_check, '\zs')) > 9 - return matchstr(b:airline_whitespace_check, '^.\{9\}').'…' - else - return b:airline_whitespace_check - endif - + return airline#util#shorten(b:airline_whitespace_check, 120, 9) endfunction function! airline#extensions#whitespace#toggle() diff --git a/autoload/airline/init.vim b/autoload/airline/init.vim index 2b6e09f6..1e824c65 100644 --- a/autoload/airline/init.vim +++ b/autoload/airline/init.vim @@ -131,7 +131,11 @@ function! airline#init#sections() let g:airline_section_y = airline#section#create_right(['ffenc']) endif if !exists('g:airline_section_z') - let g:airline_section_z = airline#section#create(['windowswap', 'obsession', '%3p%%'.spc, 'linenr', 'maxlinenr', spc.':%3v']) + if winwidth(0) > 80 + let g:airline_section_z = airline#section#create(['windowswap', 'obsession', '%3p%%'.spc, 'linenr', 'maxlinenr', spc.':%3v']) + else + let g:airline_section_z = airline#section#create(['%3p%%'.spc, 'linenr', ':%3v']) + endif endif if !exists('g:airline_section_error') let g:airline_section_error = airline#section#create(['ycm_error_count', 'syntastic', 'eclim']) diff --git a/autoload/airline/util.vim b/autoload/airline/util.vim index f4525516..157060f0 100644 --- a/autoload/airline/util.vim +++ b/autoload/airline/util.vim @@ -4,6 +4,14 @@ call airline#init#bootstrap() let s:spc = g:airline_symbols.space +function! airline#util#shorten(text, winwidth, minwidth) + if winwidth(0) < a:winwidth && len(split(a:text, '\zs')) > a:minwidth + return matchstr(a:text, '^.\{'.a:minwidth.'}').'…' + else + return a:text + endif +endfunction + function! airline#util#wrap(text, minwidth) if a:minwidth > 0 && winwidth(0) < a:minwidth return ''