mirror of
https://github.com/powerline/powerline.git
synced 2025-07-27 07:44:36 +02:00
Don’t change windows using windo, use setwinvar() instead
This commit is contained in:
parent
298f2776e3
commit
175fb1b58e
@ -19,16 +19,23 @@ function! Powerline(winnr)
|
|||||||
return s:pyeval('pl.renderer.render('. a:winnr .')')
|
return s:pyeval('pl.renderer.render('. a:winnr .')')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:WinDoPowerline()
|
function! s:UpdateAllWindows()
|
||||||
if ! exists('w:powerline')
|
for w in range(1, winnr('$'))
|
||||||
let w:powerline = {}
|
" getwinvar() returns empty string for undefined variables.
|
||||||
|
" Use has_key(getwinvar(w, ''), 'powerline') if you care about variable
|
||||||
|
" being really defined (currently with w:powerline=='' it will throw
|
||||||
|
" E706: variable type mismatch).
|
||||||
|
if getwinvar(w, 'powerline') is# ''
|
||||||
|
call setwinvar(w, 'powerline', {})
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let &l:stl = '%!Powerline('. winnr() .')'
|
call setwinvar(w, '&statusline', '%!Powerline('.w.')')
|
||||||
|
endfor
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
augroup Powerline
|
augroup Powerline
|
||||||
autocmd!
|
autocmd!
|
||||||
autocmd BufEnter,BufWinEnter,WinEnter * let w:current = 1 | let currwin = winnr() | windo call s:WinDoPowerline() | exec currwin . 'wincmd w'
|
autocmd BufEnter,BufWinEnter,WinEnter * let w:current = 1 | call s:UpdateAllWindows()
|
||||||
autocmd BufLeave,BufWinLeave,WinLeave * let w:current = 0
|
autocmd BufLeave,BufWinLeave,WinLeave * let w:current = 0
|
||||||
augroup END
|
augroup END
|
||||||
|
" vim: ft=vim noet
|
||||||
|
Loading…
x
Reference in New Issue
Block a user