Quantcast
Channel: すぱぶろ
Viewing all articles
Browse latest Browse all 30

lightline.vim に乗り換えた

$
0
0

若干の現実逃避により Lokaltog/vim-powerlineから itchyny/lightline.vimに乗り換えた。Qiita のカスタマイズエントリを参考に vim-gitgutter の連携を追記した。

vim-powerline は deprecated のようだけど、 Lokaltog/powerlineで引き続き開発されているようだ。lightline.vimに満足したので気にしないことにする。

Bundle 'itchyny/lightline.vim'
let g:lightline = {
      \'colorscheme': 'solarized_dark',
      \'mode_map': {'c': 'NORMAL'},
      \'active': {
      \'left': [ [ 'mode', 'paste' ], [ 'fugitive', 'gitgutter', 'filename' ] ]
      \ },
      \'component_function': {
      \'modified': 'MyModified',
      \'readonly': 'MyReadonly',
      \'fugitive': 'MyFugitive',
      \'gitgutter': 'MyGitGutter',
      \'filename': 'MyFilename',
      \'fileformat': 'MyFileformat',
      \'filetype': 'MyFiletype',
      \'fileencoding': 'MyFileencoding',
      \'mode': 'MyMode',
      \ },
      \'separator': {'left': '⮀', 'right': '⮂'},
      \'subseparator': {'left': '⮁', 'right': '⮃'}      \ }

function! MyModified()return&ft =~'help\|vimfiler\|gundo' ? '' : &modified ? '+' : &modifiable ? '' : '-'endfunctionfunction! MyReadonly()return&ft !~?'help\|vimfiler\|gundo'&&&ro ? '⭤' : ''endfunctionfunction! MyFilename()return(''!= MyReadonly() ? MyReadonly().'' : '').        \(&ft =='vimfiler' ? vimfiler#get_status_string() : 
        \&ft =='unite' ? unite#get_status_string() : 
        \&ft =='vimshell' ? substitute(b:vimshell.current_dir,expand('~'),'~','') : 
        \''!=expand('%t') ? expand('%t') : '[No Name]') .        \(''!= MyModified() ? ''. MyModified() : '')endfunctionfunction! MyFugitive()return&ft !~?'vimfiler\|gundo'&&exists('*fugitive#head')&&strlen(fugitive#head()) ? '⭠ '.fugitive#head() : ''endfunctionfunction! MyGitGutter()if ! exists('*GitGutterGetHunkSummary')        \|| ! get(g:, 'gitgutter_enabled', 0)        \||winwidth('.')<=90return''endiflet symbols = [
        \ g:gitgutter_sign_added .'',
        \ g:gitgutter_sign_modified .'',
        \ g:gitgutter_sign_removed .''        \ ]
  let hunks = GitGutterGetHunkSummary()let ret = []
  for i in [0, 1, 2]
    if hunks[i] >0calladd(ret, symbols[i] . hunks[i])endifendforreturnjoin(ret, '')endfunctionfunction! MyFileformat()returnwinwidth('.')>70 ? &fileformat : ''endfunctionfunction! MyFiletype()returnwinwidth('.')>70 ? (strlen(&filetype) ? &filetype : 'no ft') : ''endfunctionfunction! MyFileencoding()returnwinwidth('.')>70 ? (strlen(&fenc) ? &fenc : &enc) : ''endfunctionfunction! MyMode()returnwinwidth('.')>60 ? lightline#mode() : ''endfunction

f:id:superbrothers:20130829001215p:plain


Viewing all articles
Browse latest Browse all 30

Trending Articles