From 6ea0aa04ddb3cef295115ac4450c3b0f098ad33d Mon Sep 17 00:00:00 2001 From: wsdjeg Date: Tue, 5 Dec 2017 19:24:56 +0800 Subject: [PATCH] Fix stausline for small windows --- autoload/SpaceVim/api/vim/statusline.vim | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/autoload/SpaceVim/api/vim/statusline.vim b/autoload/SpaceVim/api/vim/statusline.vim index 9ed16c7b4..6712ed541 100644 --- a/autoload/SpaceVim/api/vim/statusline.vim +++ b/autoload/SpaceVim/api/vim/statusline.vim @@ -5,8 +5,14 @@ function! s:self.check_width(len, sec, winwidth) abort return a:len + self.len(a:sec) < a:winwidth endfunction +let g:wsd = '%{" " . g:_spacevim_statusline_fileformat . " | " . (&fenc!=""?&fenc:&enc) . " "}' function! s:self.len(sec) abort - return len(substitute(a:sec, '%{.*}', '', 'g')) + let str = matchstr(a:sec, '%{.*}') + if !empty(str) + return len(a:sec) - len(str) + len(eval(str[2:-2])) + 4 + else + return len(a:sec) + 4 + endif endfunction