-
-
Save ericbn/f2956cd9ec7d6bff8940c2087247b132 to your computer and use it in GitHub Desktop.
" Statusline (requires Powerline font) | |
set statusline= | |
set statusline+=%(%{&buflisted?bufnr('%'):''}\ \ %) | |
set statusline+=%< " Truncate line here | |
set statusline+=%f\ " File path, as typed or relative to current directory | |
set statusline+=%{&modified?'+\ ':''} | |
set statusline+=%{&readonly?'\ ':''} | |
set statusline+=%= " Separation point between left and right aligned items | |
set statusline+=\ %{&filetype!=#''?&filetype:'none'} | |
set statusline+=%(\ %{(&bomb\|\|&fileencoding!~#'^$\\\|utf-8'?'\ '.&fileencoding.(&bomb?'-bom':''):'') | |
\.(&fileformat!=#(has('win32')?'dos':'unix')?'\ '.&fileformat:'')}%) | |
set statusline+=%(\ \ %{&modifiable?(&expandtab?'et\ ':'noet\ ').&shiftwidth:''}%) | |
set statusline+=\ | |
set statusline+=\ %{&number?'':printf('%2d,',line('.'))} " Line number | |
set statusline+=%-2v " Virtual column number | |
set statusline+=\ %2p%% " Percentage through file in lines as in |CTRL-G| | |
" ------------------------ 8< ------------------------ | |
" Statusline with highlight groups (requires Powerline font, using Solarized theme) | |
set statusline= | |
set statusline+=%(%{&buflisted?bufnr('%'):''}\ \ %) | |
set statusline+=%< " Truncate line here | |
set statusline+=%f\ " File path, as typed or relative to current directory | |
set statusline+=%{&modified?'+\ ':''} | |
set statusline+=%{&readonly?'\ ':''} | |
set statusline+=%1*\ " Set highlight group to User1 | |
set statusline+=%= " Separation point between left and right aligned items | |
set statusline+=\ %{&filetype!=#''?&filetype:'none'} | |
set statusline+=%(\ %{(&bomb\|\|&fileencoding!~#'^$\\\|utf-8'?'\ '.&fileencoding.(&bomb?'-bom':''):'') | |
\.(&fileformat!=#(has('win32')?'dos':'unix')?'\ '.&fileformat:'')}%) | |
set statusline+=%(\ \ %{&modifiable?(&expandtab?'et\ ':'noet\ ').&shiftwidth:''}%) | |
set statusline+=\ %* " Restore normal highlight | |
set statusline+=\ %{&number?'':printf('%2d,',line('.'))} " Line number | |
set statusline+=%-2v " Virtual column number | |
set statusline+=\ %2p%% " Percentage through file in lines as in |CTRL-G| | |
" Logic for customizing the User1 highlight group is the following | |
" - if StatusLine colors are reverse, then User1 is not reverse and User1 fg = StatusLine fg | |
hi StatusLine cterm=reverse gui=reverse ctermfg=14 ctermbg=8 guifg=#93a1a1 guibg=#002732 | |
hi StatusLineNC cterm=reverse gui=reverse ctermfg=11 ctermbg=0 guifg=#657b83 guibg=#073642 | |
hi User1 ctermfg=14 ctermbg=0 guifg=#93a1a1 guibg=#073642 |
If you use vim-sleuth, you might want to replace
set statusline+=%(\ \ %{&modifiable?(&expandtab?'et\ ':'noet\ ').&shiftwidth:''}%)
by
set statusline+=%(\ \ %{&modifiable?SleuthIndicator():''}%)
I use this instead of SleuthIndicator():
function! LightLineBufSettings()
let et = &et ==# 1 ? "•" : "➜"
return ('│ts│'. &tabstop . '│sw│'. &shiftwidth . '│et│' . et . '│')
endfunction
great status line configuration!
I can't get vim to load this status line on startup. i copied the code into a file under .vim/plugin/ and added a so ~/.vim/plugin/file to my .vimrc, but the status line will only load after i manually source the vimrc from within a vim session.
any idea as to why this is happening?
thanks
@jonathaw, you can set the statusline directly on your vimrc file. Only if you already made your vimrc modular, then I'd assume you know where else to put these settings.
EDIT: If no statusline appears, you should add set laststatus=2
to your vimrc too. If this still does not solve your issue, you might want to check if a plugin is not interfering.
With highlight group