diff options
| author | Justine Smithies <justine@smithies.me.uk> | 2025-11-23 14:38:42 +0000 |
|---|---|---|
| committer | Justine Smithies <justine@smithies.me.uk> | 2025-11-23 14:38:42 +0000 |
| commit | 882b097ab37af286bc3727476be8f3ff9cd96786 (patch) | |
| tree | e4cc26303ac3ba178804f0bab7062cd61c60bb10 | |
| parent | 6d3f719e71ad8e5880ae0ae86e9bc425ac1356aa (diff) | |
WIP Adding custom statusline
| -rw-r--r-- | .vimrc | 72 |
1 files changed, 63 insertions, 9 deletions
@@ -1,3 +1,15 @@ +" Plugins +call plug#begin() + +" Plugins listed below +Plug 'morhetz/gruvbox' +Plug 'lilydjwg/colorizer' + +call plug#end() + +" Call after plugin is loaded +autocmd vimenter * ++nested colorscheme gruvbox + set nocompatible " This fixes the problem where arrow keys do not function properly on some systems. let mapleader=' ' " Use space for leader key @@ -6,7 +18,7 @@ set number set ruler set noerrorbells set laststatus=2 -set showmode +set noshowmode " Don't show mode in bottom status line let &fillchars ..= ',eob: ' " Hide tildes at EOF set splitbelow splitright set cursorline " Highlight the active cursor line @@ -74,14 +86,56 @@ let g:netrw_browse_split = 3 let g:netrw_altv = 1 let g:netrw_winsize = 25 -" Plugins -call plug#begin() +" Setup custom statusline +function! GitBranch() + return system("git rev-parse --abbrev-ref HEAD 2>/dev/null | tr -d '\n'") +endfunction -" Plugins listed below -Plug 'morhetz/gruvbox' -Plug 'lilydjwg/colorizer' +function! StatuslineGit() + let l:branchname = GitBranch() + return strlen(l:branchname) > 0?' '.l:branchname.' ':'' +endfunction -call plug#end() +function! StatuslineMode() + let l:mode=mode() + if l:mode==#"n" + return "Normal" + elseif l:mode==#"v" + return "Visual" + elseif l:mode==#"V" + return "Visual line" + elseif l:mode==#"\<C-V>" + return "Visual block" + elseif l:mode==#"i" + return "Insert" + elseif l:mode==#"R" + return "Replace" + elseif l:mode==#"s" + return "Select" + elseif l:mode==#"t" + return "Terminal" + elseif l:mode==#"c" + return "Enter command" + elseif l:mode==#"!" + return "Shell" + endif +endfunction + +set statusline= +set statusline+=%#PmenuSel# +set statusline+=%#DiffAdd# +set statusline+=%{StatuslineMode()} +set statusline+=%{StatuslineGit()} +set statusline+=\ %F +set statusline+=\ %r +set statusline+=%m +set statusline+=%#CursorColumn# +set statusline+=%= +set statusline+=\ %y\ +set statusline+=%#DiffAdd# +set statusline+=\ %{&fileencoding?&fileencoding:&encoding} +set statusline+=\[%{&fileformat}\] +set statusline+=\ %p%% +set statusline+=\ %l:%c +set statusline+=\ -" Call after plugin is loaded -autocmd vimenter * ++nested colorscheme gruvbox |
