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設定
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 = '⭡'
tmuxline.vimを使う場合
tmuxline.vimはtmuxのステータスバーを作るためのgeneratorだ。
詳細については次の記事を参考にしていただければと思う。
ここが問題だが、iterm2のambiguous-widthやvimrcのambiwidth=doubleがある場合、tmuxのステータスバーが崩れてしまう。
一部の絵文字を正常に表示させる対価としては失ってしまうのが大きい。
そもそも使うのも推奨されていないし、powerlineを使っている場合は画面崩れの障害ポイントになる可能性が高い。