Vim

マイvim設定を修正(vim-airlineで格好いいvimライフ)

More than 1 year has passed since last update.


lightlineからvim-airlineへ

powerlineからvim-airline、そしてlightlineへ切り替えたと思うがその経緯については全く覚えてない。

vim設定の見直しを検討していてなるべく設定の記述が少ない方がいいと思いvim-airlineに変更した。


○や□、▶︎などが崩れる場合の対策


  • iterm2 ▶︎ Profiles ▶︎ Text ▶︎ Unicodeの「Treat ambiguous-width characters as double width(not recommended)をチェックする。

  • vimrcに「set ambiwidth=double」を追加

注意:vimだけを使うことであればこの設定でも問題がないが、tmuxと一緒に使う場合はやめた方がいい。powerline系のステータスバーが崩れてしまう。


vimrcのvim-airline設定


  • Non-ASCII FontもPowerline用のrictyに変更する。
    스크린샷 2017-06-13 15.38.32.png

powerlineのフォントが設置されてない場合は正常に表示されない。

rictyについてはこちらを参考にしていただければと思う。


  • Powerline用のrictyに変更してもambiwidth=doubleになっていると◀︎や⮃などが崩れてしまう。

  • ◀︎や⮃は旧Powerline用のsymbolsを使う。

結果としては下記のように設定すれば丁度見栄えがいい感じになった。

" ○や□の文字が崩れる問題を回避

set ambiwidth=double

... snip ...

Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'

... snip ...

" Powerline系フォントを利用する
set laststatus=2
let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#buffer_idx_mode = 1
let g:airline#extensions#whitespace#mixed_indent_algo = 1
let g:airline_theme = 'papercolor'

if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif

" unicode symbols
let g:airline_left_sep = '»'
let g:airline_left_sep = '▶'
let g:airline_right_sep = '«'
let g:airline_right_sep = '◀'
let g:airline_symbols.crypt = '🔒'
let g:airline_symbols.linenr = '␊'
let g:airline_symbols.linenr = '␤'
let g:airline_symbols.linenr = '¶'
let g:airline_symbols.maxlinenr = '☰'
let g:airline_symbols.maxlinenr = ''
let g:airline_symbols.branch = '⎇'
let g:airline_symbols.paste = 'ρ'
let g:airline_symbols.paste = 'Þ'
let g:airline_symbols.paste = '∥'
let g:airline_symbols.spell = 'Ꞩ'
let g:airline_symbols.notexists = '∄'
let g:airline_symbols.whitespace = 'Ξ'

" powerline symbols
let g:airline_left_sep = ''
let g:airline_left_alt_sep = ''
let g:airline_right_sep = ''
let g:airline_right_alt_sep = ''
let g:airline_symbols.branch = ''
let g:airline_symbols.readonly = ''
let g:airline_symbols.linenr = ''

" old vim-powerline symbols
" let g:airline_left_sep = '⮀'
" let g:airline_left_alt_sep = '⮁'
let g:airline_right_sep = '⮂'
let g:airline_right_alt_sep = '⮃'
" let g:airline_symbols.branch = '⭠'
" let g:airline_symbols.readonly = '⭤'
" let g:airline_symbols.linenr = '⭡'

上記の設定で表示されるvim画面はこうなる。

스크린샷 2017-06-13 21.34.10.png


tmuxline.vimを使う場合

tmuxline.vimはtmuxのステータスバーを作るためのgeneratorだ。

詳細については次の記事を参考にしていただければと思う。

ここが問題だが、iterm2のambiguous-widthやvimrcのambiwidth=doubleがある場合、tmuxのステータスバーが崩れてしまう。

一部の絵文字を正常に表示させる対価としては失ってしまうのが大きい。

そもそも使うのも推奨されていないし、powerlineを使っている場合は画面崩れの障害ポイントになる可能性が高い。