若干の現実逃避により 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