Files
myvim/plugin/statusline.vim

49 lines
1.3 KiB
VimL

function! GetGitStatus()
if !exists('*fugitive#statusline')
return ''
endif
let result=fugitive#statusline()
if strlen(result) == 0
return result
else
return "{" . split(result,'[()]')[1] . "}"
endif
endfunction
function! GetFilePath()
let filename=@%
if strlen(filename) == 0
return '[new]'
elseif strlen(filename) < winwidth(filename) - 40
return filename
endif
let dirpath=split(@%, '\/')
let result = ''
if expand('%:p') == filename
let result .= '/'
endif
for direntry in dirpath[:-2]
let result .= direntry[0] . '/'
endfor
let result .= expand('%:t')
return result
endfunction
set statusline=
set statusline+=%w%q%h "Is it help/preview/loclist?
set statusline+=%{GetGitStatus()} "Is it git?
set statusline+=\
set statusline+=%{GetFilePath()} "What's the filename?
set statusline+=%m%r "Is it modifiable/readonly?
set statusline+=[%LL] "How many lines?
set statusline+=%= "Go to the right ---->
set statusline+=\
set statusline+=%< "Trim here
set statusline+=%{&fileencoding?&fileencoding:&encoding}
set statusline+=\|%{&fileformat} "Unix/Win?
set statusline+=%y "What's the type of the file?
set statusline+=\
set statusline+=x%02B "Character under cursor...
set statusline+=\ @%-2c "at column
set statusline+=\