読者です 読者をやめる 読者になる 読者になる

vim-airlineに乗り換えた

Vim

vim-powerlineを捨て,
powerlineを見限り,
辿り着いたのはvim-airlineだった.






良い.

かつてvim-powerlineを使用していた頃のstatuslineと遜色ない仕上がりである.
vim-powerlineがすごい - プログラムモグモグ


設定は次のような感じ.

NeoBundle 'itchyny/landscape.vim'
  colorscheme landscape
  let g:Powerline_theme = 'landscape'
  let g:Powerline_colorscheme = 'landscape'
  let g:airline_theme = 'landscape'

NeoBundle 'bling/vim-airline'
  let g:airline_enable_branch = 0
  let g:airline_section_b = "%t %M"
  let g:airline_section_c = ''
  let s:sep = " %{get(g:, 'airline_right_alt_sep', '')} "
  let g:airline_section_x =
        \ "%{strlen(&fileformat)?&fileformat:''}".s:sep.
        \ "%{strlen(&fenc)?&fenc:&enc}".s:sep.
        \ "%{strlen(&filetype)?&filetype:'no ft'}"
  let g:airline_section_y = '%3p%%'
  let g:airline_section_z = get(g:, 'airline_linecolumn_prefix', '').'%3l:%-2v'
  let g:airline#extensions#whitespace#enabled = 0

三角とかのかっこいい文字の設定はvim-airlineのdocを読んでほしい.
(はてな記法ではエスケープされるため)


landscape.vim (https://github.com/itchyny/landscape.vim) にvim-airline用テーマも用意した.
このlandscape.vimは一応カラースキームだが, vim-airline, vim-powerline用のテーマも添付している.
(自分の気に入った色の設定になっている)


vim-airline, どうも設計で気に入らないところがあるが,
主張を通せそうだと思ったら, 一つずつ潰していく方針で.

追記[2013/08/20]

gitブランチや読み取りマークを表示したい時は以下で.

  let g:airline#extensions#branch#enabled = 0
  let g:airline#extensions#readonly#enabled = 0
  let g:airline_section_b =
        \ '%{airline#extensions#branch#get_head()}' .
        \ '%{""!=airline#extensions#branch#get_head()?("  " . g:airline_left_alt_sep . " "):""}' .
        \ '%{airline#extensions#readonly#get_mark()}' .
        \ '%t%( %M%)'
  let g:airline_section_c = ''

g:airline_branch_prefixやg:airline_readonly_symbolは, スペースを入れて
let g:airline_branch_prefix = '⭠ '
let g:airline#extensions#readonly#symbol = '⭤ '
としておくと見栄えが良い.

追記[2013/08/21]

今の設定は以下.

  let g:airline_linecolumn_prefix = ''
  let g:airline#extensions#hunks#non_zero_only = 1
  let g:airline#extensions#whitespace#enabled = 0
  let g:airline#extensions#branch#enabled = 0
  let g:airline#extensions#readonly#enabled = 0
  let g:airline_section_b =
        \ '%{airline#extensions#branch#get_head()}' .
        \ '%{""!=airline#extensions#branch#get_head()?("  " . g:airline_left_alt_sep . " "):""}' .
        \ '%{airline#extensions#readonly#get_mark()}' .
        \ '%t%( %M%)'
  let g:airline_section_c = ''
  let s:sep = " %{get(g:, 'airline_right_alt_sep', '')} "
  let g:airline_section_x =
        \ '%{strlen(&fileformat)?&fileformat:""}'.s:sep.
        \ '%{strlen(&fenc)?&fenc:&enc}'.s:sep.
        \ '%{strlen(&filetype)?&filetype:"no ft"}'
  let g:airline_section_y = '%3p%%'
  let g:airline_section_z = get(g:, 'airline_linecolumn_prefix', '').'%3l:%-2v'
  let g:airline_inactive_collapse = 0
  function! AirLineForce()
    let g:airline_mode_map.__ = ''
    let w:airline_render_left = 1
    let w:airline_render_right = 1
  endfunction
  augroup AirLineForce
    autocmd!
    autocmd VimEnter * call add(g:airline_statusline_funcrefs, function('AirLineForce'))
  augroup END
追記[2013/08/22]

vim-airlineの設計が気に入らないので, 新しいプラグインlightline.vimを自分で作りました.
lightline.vim作りました - プラグインの直交性について - プログラムモグモグ