VIM: Significant style changes to statusline

I have used colour and powerline symbols to differentiate different
parts of my status line.

Inspiration came from this:
https://www.reddit.com/r/vimporn/comments/kbtu74/my_theme_called_humanoid_and_my_statusbar/
Jonathan Hodgson 3 years ago
parent 6feffc731b
commit 23f2116f9d
  1. 137
      nvim/.config/nvim/plugin/statusline.vim

@ -1,36 +1,107 @@
" Always show a statusline " Always show a statusline
set laststatus=2 set laststatus=2
" Make it empty so we can add to it " Get current filetype
set statusline= function! CheckFT(filetype)
" Space character if a:filetype == ''
set statusline+=\ return '-'
" Short file name else
set statusline+=%f return tolower(a:filetype)
" Space character endif
set statusline+=\ endfunction
" Read only flag
set statusline+=%r " set colors for statusline based on mode
" Space character function! DetectMode(mode)
set statusline+=\ if empty($DISPLAY)
" Modified flag let left=""
set statusline+=%m let right=""
" Seperator else
set statusline+=%= let left=""
" Git branch let right=""
set statusline+=%{FugitiveStatusline()} end
" Space character
set statusline+=\ let statusline=""
" column number " Mode
set statusline+=%c if a:mode == 'n'
set statusline+=: let statusline .= "%#GruvboxBg4#\ " . left
" Line number let statusline .= "%#PmenuThumb#NORMAL"
set statusline+=%l let statusline .= "%#GruvboxBg4#" . right . "\ "
" Literal `/` elseif a:mode == 'i'
set statusline+=/ let statusline .= "%#GruvboxBlue#\ " . left
" Total number of lines let statusline .= "%#PmenuSel#INSERT"
set statusline+=%L let statusline .= "%#GruvboxBlue#" . right . "\ "
" Space character elseif a:mode == 'R'
set statusline+=\ let statusline .= "%#GruvboxRed#\ " . left
" File type let statusline .= "%#DiffDelete#REPLACE"
set statusline+=%y let statusline .= "%#GruvboxRed#" . right . "\ "
elseif a:mode ==# 'v'
let statusline .= "%#GruvboxAqua#\ " . left
let statusline .= "%#DiffChange#VISUAL"
let statusline .= "%#GruvboxAqua#" . right . "\ "
elseif a:mode ==# 'V'
let statusline .= "%#GruvboxAqua#\ " . left
let statusline .= "%#DiffChange#VISUAL"
let statusline .= "%#GruvboxAqua#" . right . "\ "
elseif a:mode ==# ''
let statusline .= "%#GruvboxAqua#\ " . left
let statusline .= "%#DiffChange#VISUAL"
let statusline .= "%#GruvboxAqua#" . right . "\ "
elseif a:mode ==# 'c'
let statusline .= "%#GruvboxBg2#\ " . left
let statusline .= "%#Pmenu#COMMAND"
let statusline .= "%#GruvboxBg2#" . right . "\ "
elseif a:mode ==# 't'
let statusline .= "%#ModeTFGCS#\ " . left
let statusline .= "%#ModeTFGC#\ TERMINAL\ "
let statusline .= "%#ModeTFGCS#" . right . "\ " . left
let statusline .= "%#ModeTFGC#%[%n\ ̷%{bufnr('$')}\ "
elseif a:mode == 's' || a:mode == 'S' || a:mode == '^S'
let statusline .= "%#GruvboxAqua#\ " . left
let statusline .= "%#DiffChange#VISUAL"
let statusline .= "%#GruvboxAqua#" . right . "\ "
endif
" Filename
" grey = normal
" aqua = modified
" red = read only and not modified
if &mod == 1
let statusline .= "%#GruvboxAqua#\ " . left
let statusline .= "%#DiffChange#%.20f"
let statusline .= "%#GruvboxAqua#" . right . "\ "
else
if &readonly == 1
let statusline .= "%#GruvboxRed#\ " . left
let statusline .= "%#DiffDelete#%.20f"
let statusline .= "%#GruvboxRed#" . right . "\ "
else
let statusline .= "%#GruvboxBg4#\ " . left
let statusline .= "%#PmenuThumb#%.20f"
let statusline .= "%#GruvboxBg4#" . right . "\ "
endif
endif
" Seperator
let statusline .= "%="
" git branch
if exists("*FugitiveHead")
let statusline .= "%#GruvboxBg4#\ " . left
let statusline .= "%#PmenuThumb#%{FugitiveHead()}"
let statusline .= "%#GruvboxBg4#" . right . "\ "
endif
" Filetype
let statusline .= "%#GruvboxBlue#\ " . left
let statusline .= "%#PmenuSel#%{CheckFT(&filetype)}"
let statusline .= "%#GruvboxBlue#" . right . "\ "
" Cursor location and file length
let statusline .= "%#GruvboxYellow#\ " . left
let statusline .= "%#Search#%c:%l\ %#IncSearch#\ %L"
let statusline .= "%#GruvboxOrange#" . right . "\ "
return statusline
endfunction
set statusline=%!DetectMode(mode())

Loading…
Cancel
Save