My legacy Vim statusline replaced with powerline.
" set statusline=
" set stl+=%#User1# " Brighten
" set stl+=\ " Space
" set stl+=%04(%l%),%02(%v%) " Current line
" set stl+=\ " Space
" set stl+=%#User2# " Dimmed
" set stl+=[ " Open bracket
" set stl+=S:%{CurrentSession()} " Current Session
" set stl+=] " Close bracket
" set stl+=\ " Space
" set stl+=%#User1# " Brighten
" set stl+=%t " Filename
" set stl+=%{Filestate_status()} " File status
" set stl+=%#User2# " Dimmed
" set stl+=%w " Preview flag
" set stl+=\ " Space
" set stl+=\ " Space
" set stl+=\ " Space
" set stl+=%= " Align right
" set stl+= " TODO: diff mode flag
" set stl+= " TODO: scrollbind flag
" set stl+= " TODO: capslock flag
" set stl+=%{AutoCompleteFlag()} " Auto Complete flag
" set stl+=%{WrapFlag()} " Wrap flag
" set stl+=%{SpellFlag()} " Spellcheck flag
" set stl+=\ " Space
" set stl+=[ " Open bracket
" set stl+=%{ExpandTabFlag()} " Soft tab flag
" set stl+=%{TabStopStatus()} " Tab size
" set stl+=] " Close bracket
" set stl+=\ " Space
" set stl+=[ " Open bracket
" set stl+=%{Fileencoding_status()}\/ " File encoding
" set stl+=%{Fileformat_status()} " File format
" set stl+=] " Close bracket
" set stl+=\ " Space
" set stl+=%#User1# " Brighten
" set stl+=[%{Filetype_status()}] " File type
" set stl+=%< " Truncate this side of the aisle
"-------------------------------------------------------------------------------
" "File Status"
function! Filestate_status()
" Writable
if &readonly || &buftype == "nowrite" || &buftype == "help"
return '!'
" Modified
elseif &modified != 0
return '*'
" Unmodified
else
return ' '
endif
endfunction
"-------------------------------------------------------------------------------
" "File Type Status"
function! Filetype_status()
if &filetype == ""
return "Plain\ Text"
else
"let vimez_filetype = substitute(&filetype, "\\w\\+", "\\U\\0", "g")
return &filetype
endif
endfunction
"-------------------------------------------------------------------------------
" "File Encoding Status"
function! Fileencoding_status()
if &fileencoding == ""
if &encoding != ""
"let vimez_encoding = substitute(&encoding, "\\w\\+", "\\U\\0", "g")
return &encoding
else
return "--"
endif
else
"let vimez_fileencoding = substitute(&fileencoding, "\\w\\+", "\\U\\0", "g")
return &fileencoding
endif
endfunction
"-------------------------------------------------------------------------------
" "File Format Status"
function! Fileformat_status()
if &fileformat == ""
return "--"
else
"let vimez_fileformat = substitute(&fileformat, "\\w\\+", "\\U\\0", "g")
return &fileformat
endif
endfunction
"-------------------------------------------------------------------------------
" "Current Session Status"
function! CurrentSession()
let g:currSession = fnamemodify(v:this_session, ":t:r")
return g:currSession
endfunction
"-------------------------------------------------------------------------------
" Generate a statusline flag for Spell Check"
function! SpellFlag()
if &spell == 0
return ""
else
return "[S]"
endif
endfunction
"-------------------------------------------------------------------------------
" Generate a statusline flag for Line Wrap"
function! WrapFlag()
if &wrap == 0
return ""
else
return "[W]"
endif
endfunction
"-------------------------------------------------------------------------------
" Generate a statusline flag for AutoComplete.
function! AutoCompleteFlag()
if g:neocomplcache_disable_auto_complete == 1
return ""
else
return "[A]"
endif
endfunction
"-------------------------------------------------------------------------------
" Generate a statusline flag for expandtab.
function! ExpandTabFlag()
if &expandtab == 0
return ""
else
return "S"
endif
endfunction
"-------------------------------------------------------------------------------
" Generate statusline flags for softtabstop, tabstop, and shiftwidth.
function! TabStopStatus()
let str = "T:" . &tabstop
" Show softtabstop or shiftwidth if not equal tabstop
if (&softtabstop && (&softtabstop != &tabstop))
\ || (&shiftwidth && (&shiftwidth != &tabstop))
let str = "TS:" . &tabstop
if &softtabstop
let str = str . "\ STS:" . &softtabstop
endif
if &shiftwidth != &tabstop
let str = str . "\ SW:" . &shiftwidth
endif
endif
return str
endfunction
"-------------------------------------------------------------------------------
" theme
" "Status Line"
hi StatusLine guifg=#1C1C1C guibg=#87FF00
hi StatusLineNC guifg=#1C1C1C guibg=#87FF00
" Normal
hi User1 guifg=#1C1C1C guibg=#87FF00 gui=bold
" Dimmed
hi User2 guifg=#5F5F00 guibg=#87FF00 gui=bold
" Non-Current
hi User3 guifg=#444444 guibg=#1C1C1C
let g:Active_statusline=&g:statusline
let g:NCstatusline=substitute(
\ substitute(g:Active_statusline,
\ 'User1', 'User3', 'g'),
\ 'User2', 'User3', 'g')
au WinEnter,BufEnter * let&l:statusline = g:Active_statusline
au WinLeave * let&l:statusline = g:NCstatusline
-------------------------------------------------------------------------------
"Insert Mode Indicator" This specifies which color to change the cursor line
and status bar to when you enter into Insert modes and back to Normal mode. As
well as to temporarily turn off search highlighting when in Insert mode and
back on after escaping.
augroup ModeIndicator
au InsertEnter * hi User1 guifg=#1C1C1C guibg=#FF005F ctermfg=234 ctermbg=197
au InsertEnter * hi User2 guifg=#FF005F guibg=#FF005F ctermfg=197 ctermbg=197
au InsertEnter * hi Cursorline guifg=NONE guibg=NONE gui=underline
au InsertEnter * hi Cursorline ctermfg=NONE ctermbg=NONE cterm=NONE term=underline
au InsertEnter * hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=NONE term=underline
au InsertEnter * setlocal nohlsearch
au InsertLeave * hi User1 guifg=#1C1C1C guibg=#87FF00 ctermfg=234 ctermbg=118
au InsertLeave * hi User2 guifg=#5F5F00 guibg=#87FF00 ctermfg=58 ctermbg=118
au InsertLeave * hi Cursorline guifg=NONE guibg=#87FF00 guisp=#FF005F
au InsertLeave * hi Cursorline ctermfg=NONE ctermbg=234 cterm=NONE
au InsertLeave * hi CursorColumn ctermfg=NONE ctermbg=234 cterm=NONE
au InsertLeave * setlocal hlsearch
augroup END
"---------------------------------------------------------------------------------------------