mirror of
https://github.com/elenapan/dotfiles.git
synced 2025-12-26 15:14:58 +08:00
Added vim statusline configuration
Former-commit-id: 170a085888
Former-commit-id: efb1cc95f315a89ed9028bbe9945aeb31449e107
Former-commit-id: c153cd41149fcbcf7be88a20457c0f0e99d044bf
Former-commit-id: cb6aa69bd1196b4374f05908c3226b6366fd7178
This commit is contained in:
parent
c7d9fa00e5
commit
e42b2d4588
1 changed files with 121 additions and 0 deletions
121
config/nvim/statusline.vim
Normal file
121
config/nvim/statusline.vim
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
" Make sure to source this file somewhere at the bottom of your config.
|
||||
" ====================================================================
|
||||
" ====================================================================
|
||||
|
||||
" Do not show mode under the statusline since the statusline itself changes
|
||||
" color depending on mode
|
||||
set noshowmode
|
||||
|
||||
set laststatus=2
|
||||
" ~~~~ Statusline configuration ~~~~
|
||||
" ':help statusline' is your friend!
|
||||
function! RedrawModeColors(mode) " {{{
|
||||
" Normal mode
|
||||
if a:mode == 'n'
|
||||
hi MyStatuslineAccent ctermfg=8 cterm=NONE ctermbg=NONE
|
||||
hi MyStatuslineFilename ctermfg=4 cterm=none ctermbg=0
|
||||
hi MyStatuslineAccentBody ctermbg=8 cterm=NONE ctermfg=4
|
||||
" Insert mode
|
||||
elseif a:mode == 'i'
|
||||
hi MyStatuslineAccent ctermfg=8 cterm=NONE ctermbg=NONE
|
||||
hi MyStatuslineFilename ctermfg=1 cterm=none ctermbg=0
|
||||
hi MyStatuslineAccentBody ctermbg=8 cterm=NONE ctermfg=1
|
||||
" Replace mode
|
||||
elseif a:mode == 'R'
|
||||
hi MyStatuslineAccent ctermfg=8 cterm=NONE ctermbg=NONE
|
||||
hi MyStatuslineFilename ctermfg=3 cterm=none ctermbg=0
|
||||
hi MyStatuslineAccentBody ctermbg=8 cterm=NONE ctermfg=3
|
||||
" Visual mode
|
||||
elseif a:mode == 'v' || a:mode == 'V' || a:mode == '^V'
|
||||
hi MyStatuslineAccent ctermfg=8 cterm=NONE ctermbg=NONE
|
||||
hi MyStatuslineFilename ctermfg=5 cterm=none ctermbg=0
|
||||
hi MyStatuslineAccentBody ctermbg=8 cterm=NONE ctermfg=5
|
||||
" Command mode
|
||||
elseif a:mode == 'c'
|
||||
hi MyStatuslineAccent ctermfg=8 cterm=NONE ctermbg=NONE
|
||||
hi MyStatuslineFilename ctermfg=6 cterm=none ctermbg=0
|
||||
hi MyStatuslineAccentBody ctermbg=8 cterm=NONE ctermfg=6
|
||||
" Terminal mode
|
||||
elseif a:mode == 't'
|
||||
hi MyStatuslineAccent ctermfg=8 cterm=NONE ctermbg=NONE
|
||||
hi MyStatuslineFilename ctermfg=1 cterm=none ctermbg=0
|
||||
hi MyStatuslineAccentBody ctermbg=8 cterm=NONE ctermfg=1
|
||||
endif
|
||||
" Return empty string so as not to display anything in the statusline
|
||||
return ''
|
||||
endfunction
|
||||
" }}}
|
||||
function! SetModifiedSymbol(modified) " {{{
|
||||
if a:modified == 1
|
||||
hi MyStatuslineModifiedBody ctermbg=0 cterm=bold ctermfg=1
|
||||
else
|
||||
hi MyStatuslineModifiedBody ctermbg=0 cterm=bold ctermfg=8
|
||||
endif
|
||||
return '●'
|
||||
endfunction
|
||||
" }}}
|
||||
function! SetFiletype(filetype) " {{{
|
||||
if a:filetype == ''
|
||||
return '-'
|
||||
else
|
||||
return a:filetype
|
||||
endif
|
||||
endfunction
|
||||
" }}}
|
||||
|
||||
" Statusbar items
|
||||
" ====================================================================
|
||||
|
||||
" This will not be displayed, but the function RedrawModeColors will be
|
||||
" called every time the mode changes, thus updating the colors used for the
|
||||
" components.
|
||||
set statusline=%{RedrawModeColors(mode())}
|
||||
" Left side items
|
||||
" =======================
|
||||
set statusline+=%#MyStatuslineAccent#
|
||||
set statusline+=%#MyStatuslineAccentBody#\
|
||||
" Filename
|
||||
set statusline+=%#MyStatuslineFilename#\ %.20f
|
||||
set statusline+=%#MyStatuslineSeparator#\
|
||||
" Modified status
|
||||
set statusline+=%#MyStatuslineModified#
|
||||
set statusline+=%#MyStatuslineModifiedBody#%{SetModifiedSymbol(&modified)}
|
||||
set statusline+=%#MyStatuslineModified#
|
||||
" Right side items
|
||||
" =======================
|
||||
set statusline+=%=
|
||||
" Line and Column
|
||||
set statusline+=%#MyStatuslineLineCol#
|
||||
set statusline+=%#MyStatuslineLineColBody#%2l
|
||||
set statusline+=\/%#MyStatuslineLineColBody#%2c
|
||||
set statusline+=%#MyStatuslineLineCol#
|
||||
" Padding
|
||||
set statusline+=\
|
||||
" Current scroll percentage and total lines of the file
|
||||
set statusline+=%#MyStatuslinePercentage#
|
||||
set statusline+=%#MyStatuslinePercentageBody#%P
|
||||
set statusline+=\/\%#MyStatuslinePercentageBody#%L
|
||||
set statusline+=%#MyStatuslinePercentage#
|
||||
" Padding
|
||||
set statusline+=\
|
||||
" Filetype
|
||||
set statusline+=%#MyStatuslineFiletype#
|
||||
set statusline+=%#MyStatuslineFiletypeBody#%{SetFiletype(&filetype)}
|
||||
set statusline+=%#MyStatuslineFiletype#
|
||||
|
||||
" Setup the colors
|
||||
hi StatusLine ctermfg=5 ctermbg=NONE cterm=NONE
|
||||
hi StatusLineNC ctermfg=8 ctermbg=NONE cterm=bold
|
||||
|
||||
hi MyStatuslineSeparator ctermfg=0 cterm=NONE ctermbg=NONE
|
||||
|
||||
hi MyStatuslineModified ctermfg=0 cterm=NONE ctermbg=NONE
|
||||
|
||||
hi MyStatuslineFiletype ctermbg=NONE cterm=NONE ctermfg=0
|
||||
hi MyStatuslineFiletypeBody ctermfg=5 cterm=italic ctermbg=0
|
||||
|
||||
hi MyStatuslinePercentage ctermfg=0 cterm=NONE ctermbg=NONE
|
||||
hi MyStatuslinePercentageBody ctermbg=0 cterm=none ctermfg=6
|
||||
|
||||
hi MyStatuslineLineCol ctermfg=0 cterm=NONE ctermbg=NONE
|
||||
hi MyStatuslineLineColBody ctermbg=0 cterm=none ctermfg=2
|
||||
Loading…
Add table
Add a link
Reference in a new issue