itaine
10/25/2012 - 8:54 PM

My legacy Vim statusline replaced with powerline.

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                                                                                   
"---------------------------------------------------------------------------------------------