better status line
This commit is contained in:
parent
d4bc6393d3
commit
f6a748d67b
2 changed files with 80 additions and 77 deletions
115
vimrc
115
vimrc
|
|
@ -255,85 +255,78 @@ iabbrev tehn then
|
|||
|
||||
|
||||
" #statusline format
|
||||
function! ActiveStatus()
|
||||
let l:statusline='%#StatusLineFile# '
|
||||
let l:statusline.='%#StatusLineMod#'
|
||||
let l:statusline.='%M'
|
||||
let l:statusline.='%*'
|
||||
let l:statusline.='%#StatusLineDir# '
|
||||
let l:statusline.=expand('%:p:h:t') . '/'
|
||||
let l:statusline.='%#StatusLineFile#'
|
||||
let l:statusline.="%{expand('%:t:r')}"
|
||||
let l:statusline.='%#StatusLineDot#'
|
||||
let l:statusline.='%#StatusLineExt#'
|
||||
let l:extension=expand('%:e')
|
||||
if strlen(l:extension) > 0
|
||||
let l:statusline.='.' . l:extension
|
||||
" isactive = 0 when inactive, 1 otherwise
|
||||
function! GetStatus(isactive)
|
||||
let l:separator='%#StatusLineSeparator#'
|
||||
let l:statusline=''
|
||||
|
||||
" linter status
|
||||
let l:statusline.='%#InterfaceH2# %{LinterStatus()} %*'
|
||||
|
||||
" file info
|
||||
if a:isactive == 1
|
||||
let l:statusline.='%q%h%w%r'
|
||||
let l:statusline.=" %{strlen(&ft)?&ft:'none'},"
|
||||
let l:statusline.='%{strlen(&fenc)?&fenc:&enc},'
|
||||
let l:statusline.='%{&fileformat} '
|
||||
let l:statusline.=' %{&spelllang} %*'
|
||||
else
|
||||
let l:statusline.=l:separator
|
||||
endif
|
||||
|
||||
let l:statusline.=' %*'
|
||||
let l:statusline.='%q%h%w%r'
|
||||
let l:statusline.='%#StatusLineNC# '
|
||||
let l:statusline.='%*'
|
||||
let l:statusline.=" %{strlen(&ft)?&ft:'none'},"
|
||||
let l:statusline.='%{strlen(&fenc)?&fenc:&enc},'
|
||||
let l:statusline.='%{&fileformat} '
|
||||
let l:statusline.='%#StatusLineNC# '
|
||||
let l:statusline.='%*'
|
||||
let l:statusline.=' %{&spelllang} '
|
||||
let l:statusline.='%#StatusLineNC#'
|
||||
" current register
|
||||
if a:isactive
|
||||
let l:statusline.=l:separator . ' %* "%{v:register}" %*'
|
||||
endif
|
||||
|
||||
" session status
|
||||
if a:isactive
|
||||
let l:statusline.=l:separator . ' %*'
|
||||
let l:statusline.=" %{ObsessionStatus(fnamemodify(v:this_session,':t'),'---')} %*"
|
||||
let l:statusline.=l:separator . ' %*'
|
||||
endif
|
||||
|
||||
" right/left separator
|
||||
let l:statusline.='%='
|
||||
|
||||
let l:statusline.='%#StatusLineNC#'
|
||||
let l:statusline.=' '
|
||||
let l:statusline.='%*'
|
||||
let l:statusline.=' "%{v:register}" '
|
||||
let l:statusline.='%#StatusLineNC#'
|
||||
let l:statusline.=' '
|
||||
let l:statusline.='%*'
|
||||
let l:statusline.=" %{ObsessionStatus(fnamemodify(v:this_session,':t'),'---')} "
|
||||
|
||||
let l:statusline.='%#InterfaceH2#'
|
||||
let l:statusline.=' %{LinterStatus()}'
|
||||
|
||||
let l:statusline.='%#InterfaceNormalDark#'
|
||||
let l:statusline.=' %P '
|
||||
let l:statusline.='%*'
|
||||
return l:statusline
|
||||
endfunction
|
||||
|
||||
function! InactiveStatus()
|
||||
let l:statusline='%#StatusLineFile# '
|
||||
let l:statusline.='%#StatusLineMod#'
|
||||
let l:statusline.='%M'
|
||||
let l:statusline.='%*'
|
||||
" path/filename.extension
|
||||
let l:statusline.='%#StatusLineDir# '
|
||||
let l:statusline.=expand('%:p') . '/'
|
||||
|
||||
if a:isactive
|
||||
let l:statusline.="%{expand('%:p:h:t')}/"
|
||||
else
|
||||
let l:statusline.="%{expand('%:p:h')}/"
|
||||
endif
|
||||
|
||||
" if &l:modified
|
||||
" let l:statusline.='%#StatusLineFileMod#'
|
||||
" else
|
||||
" let l:statusline.='%#StatusLineFile#'
|
||||
" endif
|
||||
let l:statusline.='%#StatusLineFile#'
|
||||
|
||||
let l:statusline.="%{expand('%:t:r')}"
|
||||
let l:statusline.='%#StatusLineDot#'
|
||||
|
||||
let l:statusline.='%#StatusLineExt#'
|
||||
let l:extension=expand('%:e')
|
||||
if strlen(l:extension) > 0
|
||||
let l:statusline.='.' . l:extension
|
||||
endif
|
||||
let l:statusline.="%{strlen(expand('%:e'))?'.':''}"
|
||||
let l:statusline.="%{strlen(expand('%:e'))?expand('%:e'):expand('%:e')}"
|
||||
let l:statusline.=' %*'
|
||||
|
||||
let l:statusline.='%=%#InterfaceH2#'
|
||||
let l:statusline.='%{LinterStatus()}'
|
||||
|
||||
let l:statusline.='%#InterfaceNormalDark#'
|
||||
let l:statusline.=' %P '
|
||||
let l:statusline.='%*'
|
||||
" modified flag
|
||||
let l:statusline.='%#StatusLineMod#%M' . l:separator . ' %*'
|
||||
|
||||
" file percentage
|
||||
let l:statusline.='%#InterfaceNormalDark# %P %*'
|
||||
return l:statusline
|
||||
endfunction
|
||||
|
||||
|
||||
augroup status
|
||||
autocmd!
|
||||
autocmd WinEnter * setlocal statusline=%!ActiveStatus()
|
||||
autocmd WinLeave * setlocal statusline=%!InactiveStatus()
|
||||
autocmd WinEnter * setlocal statusline=%!GetStatus(1)
|
||||
autocmd WinLeave * setlocal statusline=%!GetStatus(0)
|
||||
autocmd InsertChange * setlocal statusline=%!GetStatus(1)
|
||||
augroup END
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue