みなさんVim使ってますよね
ここのとこ, もう半年ほど何もカスタマイズせずに同じ環境で使い続けたんですが,
たまにはなにか変えてみようかなと思いました
そこで見なおしたのはステータスラインです
ずっと長いこと次のようなステータスラインを用いていました
set statusline=%{expand('%:p:t')}\ %<[%{expand('%:p:h')}]%=\ %m%r%y%w[%{&fenc!=''?&fenc:&enc}][%{&ff}][%3l,%3c,%3p]
あまりこれといった工夫もありませんが, 長いこと快適に使っていたのでそんなに酷いものではないでしょう...
ですが今日, Powerlineを入れてみました
使い始めてそのかっこよさに惚れました...
今までなんとなく避けていたのが勿体ないですね...
github(https://github.com/Lokaltog/vim-powerline)に上がっているためインストールは簡単です
NeoBundle 'Lokaltog/vim-powerline'
Bundle使いはBundleで, NeoBundleとかBundleってなんだよって人はgit cloneで入れてください
しかし, なんかステータスラインの区切りがまっすぐです
これを更にかっこよくするには, フォントを作って設定しなければなりませんが,
その方法等は詳しくhttps://github.com/Lokaltog/vim-powerline/tree/develop/fontpatcherに書いてあるので大丈夫です
私はInconsolataが好きなのでこれにあてました
set guifont=Inconsolata_for_Powerline:h11:cANSI let g:Powerline_symbols='fancy'
さらに, どうもデフォルトの色が気に入らなかったので, カラースキームも自分で書いてみました
vim-powerline/autoload/Powerline/Colorschemes/default.vim などを参考に...
取り敢えず以下を.vimrcに書き込んだらよさげ(てきとう)
!!!下の追記の方を使ってください!!!
call Pl#Hi#Allocate({ \ 'black' : 16, \ 'white' : 231, \ \ 'darkestgreen' : 22, \ 'darkgreen' : 28, \ \ 'darkestcyan' : 23, \ 'mediumcyan' : 117, \ \ 'darkestblue' : 24, \ 'darkblue' : 31, \ \ 'darkestred' : 52, \ 'darkred' : 88, \ 'mediumred' : 124, \ 'brightred' : 160, \ 'brightestred' : 196, \ \ \ 'darkestyellow' : 59, \ 'darkyellow' : 100, \ 'darkestpurple' : 55, \ 'mediumpurple' : 98, \ 'brightpurple' : 189, \ \ 'brightorange' : 208, \ 'brightestorange': 214, \ \ 'gray0' : 233, \ 'gray1' : 235, \ 'gray2' : 236, \ 'gray3' : 239, \ 'gray4' : 240, \ 'gray5' : 241, \ 'gray6' : 244, \ 'gray7' : 245, \ 'gray8' : 247, \ 'gray9' : 250, \ 'gray10' : 252, \ }) " 'n': normal mode " 'i': insert mode " 'v': visual mode " 'r': replace mode " 'N': not active let g:Powerline#Colorschemes#my#colorscheme = Pl#Colorscheme#Init([ \ Pl#Hi#Segments(['SPLIT'], { \ 'n': ['white', 'gray2'], \ 'N': ['gray0', 'gray0'], \ }), \ \ Pl#Hi#Segments(['mode_indicator'], { \ 'i': ['darkestgreen', 'white', ['bold']], \ 'n': ['darkestcyan', 'white', ['bold']], \ 'v': ['darkestpurple', 'white', ['bold']], \ 'r': ['mediumred', 'white', ['bold']], \ 's': ['white', 'gray5', ['bold']], \ }), \ \ Pl#Hi#Segments(['fileinfo', 'filename'], { \ 'i': ['white', 'darkgreen', ['bold']], \ 'n': ['white', 'darkblue', ['bold']], \ 'v': ['white', 'mediumpurple', ['bold']], \ 'r': ['white', 'brightred', ['bold']], \ 'N': ['gray0', 'gray2', ['bold']], \ }), \ \ Pl#Hi#Segments(['branch', 'scrollpercent', 'raw', 'filesize'], { \ 'n': ['gray2', 'gray7'], \ 'N': ['gray0', 'gray2'], \ }), \ \ Pl#Hi#Segments(['fileinfo.filepath', 'status'], { \ 'n': ['gray10'], \ 'N': ['gray5'], \ }), \ \ Pl#Hi#Segments(['static_str'], { \ 'n': ['white', 'gray4'], \ 'N': ['gray1', 'gray1'], \ }), \ \ Pl#Hi#Segments(['fileinfo.flags'], { \ 'n': ['white'], \ 'N': ['gray4'], \ }), \ \ Pl#Hi#Segments(['currenttag', 'fileformat', 'fileencoding', 'pwd', 'filetype', 'rvm:string', 'rvm:statusline', 'virtualenv:statusline', 'charcode', 'currhigroup'], { \ 'n': ['gray9', 'gray4'], \ }), \ \ Pl#Hi#Segments(['lineinfo'], { \ 'n': ['gray2', 'gray10'], \ 'N': ['gray2', 'gray4'], \ }), \ \ Pl#Hi#Segments(['errors'], { \ 'n': ['brightestorange', 'gray2', ['bold']], \ }), \ \ Pl#Hi#Segments(['lineinfo.line.tot'], { \ 'n': ['gray2'], \ 'N': ['gray2'], \ }), \ \ Pl#Hi#Segments(['paste_indicator', 'ws_marker'], { \ 'n': ['white', 'brightred', ['bold']], \ }), \ \ Pl#Hi#Segments(['gundo:static_str.name', 'command_t:static_str.name'], { \ 'n': ['white', 'mediumred', ['bold']], \ 'N': ['brightred', 'darkestred', ['bold']], \ }), \ \ Pl#Hi#Segments(['gundo:static_str.buffer', 'command_t:raw.line'], { \ 'n': ['white', 'darkred'], \ 'N': ['brightred', 'darkestred'], \ }), \ \ Pl#Hi#Segments(['gundo:SPLIT', 'command_t:SPLIT'], { \ 'n': ['white', 'darkred'], \ 'N': ['white', 'darkestred'], \ }), \ \ Pl#Hi#Segments(['ctrlp:focus', 'ctrlp:byfname'], { \ 'n': ['brightpurple', 'darkestpurple'], \ }), \ \ Pl#Hi#Segments(['ctrlp:prev', 'ctrlp:next', 'ctrlp:pwd'], { \ 'n': ['white', 'mediumpurple'], \ }), \ \ Pl#Hi#Segments(['ctrlp:item'], { \ 'n': ['darkestpurple', 'white', ['bold']], \ }), \ \ Pl#Hi#Segments(['ctrlp:marked'], { \ 'n': ['brightestred', 'darkestpurple', ['bold']], \ }), \ \ Pl#Hi#Segments(['ctrlp:count'], { \ 'n': ['darkestpurple', 'white'], \ }), \ \ Pl#Hi#Segments(['ctrlp:SPLIT'], { \ 'n': ['white', 'darkestpurple'], \ }), \ ]) let g:Powerline_colorscheme='my'
normal mode
insert mode
visual(line) mode
replace mode
:vnew
いっぱい
うつくしい...
右側を変化させずに統一し, 左側の色が変化する仕様.
挿入モードに入ったらステータスラインの色を変える設定は随分前からしていたので, 劇的な変化ではないですが...
そのうちテーマの方も作ってみたいけど, いまはこれで満足
Happy coding with vim〜♪
追記[date=2012/06/09]
赤色だとreplace modeで変更アリの記号+が潰れることに気がついた. 白くしとく.
@@ -533,7 +533,7 @@ let g:Powerline#Colorschemes#my#colorscheme = Pl#Colorscheme#Init([ \ }), \ \ Pl#Hi#Segments(['fileinfo.flags'], { - \ 'n': ['brightestred'], + \ 'n': ['white'], \ 'N': ['gray4'], \ }), \
追記[date=2012/06/12]
どうも淡色と濃色で統一感がなかったので, 濃い色と白色のリバースで対応させました.
略
追記[date=2012/08/26]
なんかフィードバックが多いので, 今使ってる最新の設定を貼っておきます
let g:Powerline_symbols='fancy' call Pl#Hi#Allocate({ \ 'black' : 16, \ 'white' : 231, \ \ 'darkestgreen' : 22, \ 'darkgreen' : 28, \ \ 'darkestcyan' : 21, \ 'mediumcyan' : 117, \ \ 'darkestblue' : 24, \ 'darkblue' : 31, \ \ 'darkestred' : 52, \ 'darkred' : 88, \ 'mediumred' : 124, \ 'brightred' : 160, \ 'brightestred' : 196, \ \ 'darkestyellow' : 59, \ 'darkyellow' : 100, \ 'darkestpurple' : 57, \ 'mediumpurple' : 98, \ 'brightpurple' : 189, \ \ 'brightorange' : 208, \ 'brightestorange': 214, \ \ 'gray0' : 233, \ 'gray1' : 235, \ 'gray2' : 236, \ 'gray3' : 239, \ 'gray4' : 240, \ 'gray5' : 241, \ 'gray6' : 244, \ 'gray7' : 245, \ 'gray8' : 247, \ 'gray9' : 250, \ 'gray10' : 252, \ }) " 'n': normal mode " 'i': insert mode " 'v': visual mode " 'r': replace mode " 'N': not active let g:Powerline#Colorschemes#my#colorscheme = Pl#Colorscheme#Init([ \ Pl#Hi#Segments(['SPLIT'], { \ 'n': ['white', 'gray2'], \ 'N': ['gray0', 'gray0'], \ }), \ \ Pl#Hi#Segments(['mode_indicator'], { \ 'i': ['darkestgreen', 'white', ['bold']], \ 'n': ['darkestcyan', 'white', ['bold']], \ 'v': ['darkestpurple', 'white', ['bold']], \ 'r': ['mediumred', 'white', ['bold']], \ 's': ['white', 'gray5', ['bold']], \ }), \ \ Pl#Hi#Segments(['fileinfo', 'filename'], { \ 'i': ['white', 'darkestgreen', ['bold']], \ 'n': ['white', 'darkestcyan', ['bold']], \ 'v': ['white', 'darkestpurple', ['bold']], \ 'r': ['white', 'mediumred', ['bold']], \ 'N': ['gray0', 'gray2', ['bold']], \ }), \ \ Pl#Hi#Segments(['branch', 'scrollpercent', 'raw', 'filesize'], { \ 'n': ['gray2', 'gray7'], \ 'N': ['gray0', 'gray2'], \ }), \ \ Pl#Hi#Segments(['fileinfo.filepath', 'status'], { \ 'n': ['gray10'], \ 'N': ['gray5'], \ }), \ \ Pl#Hi#Segments(['static_str'], { \ 'n': ['white', 'gray4'], \ 'N': ['gray1', 'gray1'], \ }), \ \ Pl#Hi#Segments(['fileinfo.flags'], { \ 'n': ['white'], \ 'N': ['gray4'], \ }), \ \ Pl#Hi#Segments(['currenttag', 'fileformat', 'fileencoding', 'pwd', 'filetype', 'rvm:string', 'rvm:statusline', 'virtualenv:statusline', 'charcode', 'currhigroup'], { \ 'n': ['gray9', 'gray4'], \ }), \ \ Pl#Hi#Segments(['lineinfo'], { \ 'n': ['gray2', 'gray10'], \ 'N': ['gray2', 'gray4'], \ }), \ \ Pl#Hi#Segments(['errors'], { \ 'n': ['white', 'gray2'], \ }), \ \ Pl#Hi#Segments(['lineinfo.line.tot'], { \ 'n': ['gray2'], \ 'N': ['gray2'], \ }), \ \ Pl#Hi#Segments(['paste_indicator', 'ws_marker'], { \ 'n': ['white', 'brightred', ['bold']], \ }), \ \ Pl#Hi#Segments(['gundo:static_str.name', 'command_t:static_str.name'], { \ 'n': ['white', 'mediumred', ['bold']], \ 'N': ['brightred', 'darkestred', ['bold']], \ }), \ \ Pl#Hi#Segments(['gundo:static_str.buffer', 'command_t:raw.line'], { \ 'n': ['white', 'darkred'], \ 'N': ['brightred', 'darkestred'], \ }), \ \ Pl#Hi#Segments(['gundo:SPLIT', 'command_t:SPLIT'], { \ 'n': ['white', 'darkred'], \ 'N': ['white', 'darkestred'], \ }), \ \ Pl#Hi#Segments(['ctrlp:focus', 'ctrlp:byfname'], { \ 'n': ['brightpurple', 'darkestpurple'], \ }), \ \ Pl#Hi#Segments(['ctrlp:prev', 'ctrlp:next', 'ctrlp:pwd'], { \ 'n': ['white', 'mediumpurple'], \ }), \ \ Pl#Hi#Segments(['ctrlp:item'], { \ 'n': ['darkestpurple', 'white', ['bold']], \ }), \ \ Pl#Hi#Segments(['ctrlp:marked'], { \ 'n': ['brightestred', 'darkestpurple', ['bold']], \ }), \ \ Pl#Hi#Segments(['ctrlp:count'], { \ 'n': ['darkestpurple', 'white'], \ }), \ \ Pl#Hi#Segments(['ctrlp:SPLIT'], { \ 'n': ['white', 'darkestpurple'], \ }), \ ]) let g:Powerline_colorscheme='my' let g:Powerline_mode_n = 'NORMAL'
追記[date=2012/12/09]
今最新の設定を貼っておきます.
ctrlpは消したので.
let g:Powerline_symbols='fancy' let g:Powerline_mode_n = 'NORMAL' call Pl#Hi#Allocate({ \ 'black' : 16, \ 'white' : 231, \ \ 'darkestgreen' : 22, \ 'darkgreen' : 28, \ \ 'darkestcyan' : 21, \ 'mediumcyan' : 117, \ \ 'darkestblue' : 24, \ 'darkblue' : 31, \ \ 'darkestred' : 52, \ 'darkred' : 88, \ 'mediumred' : 124, \ 'brightred' : 160, \ 'brightestred' : 196, \ \ 'darkestyellow' : 59, \ 'darkyellow' : 100, \ 'darkestpurple' : 57, \ 'mediumpurple' : 98, \ 'brightpurple' : 189, \ \ 'brightorange' : 208, \ 'brightestorange': 214, \ \ 'gray0' : 233, \ 'gray1' : 235, \ 'gray2' : 236, \ 'gray3' : 239, \ 'gray4' : 240, \ 'gray5' : 241, \ 'gray6' : 244, \ 'gray7' : 245, \ 'gray8' : 247, \ 'gray9' : 250, \ 'gray10' : 252, \ }) " 'n': normal mode " 'i': insert mode " 'v': visual mode " 'r': replace mode " 'N': not active let g:Powerline#Colorschemes#my#colorscheme = Pl#Colorscheme#Init([ \ Pl#Hi#Segments(['SPLIT'], { \ 'n': ['white', 'gray2'], \ 'N': ['gray0', 'gray0'], \ }), \ \ Pl#Hi#Segments(['mode_indicator'], { \ 'i': ['darkestgreen', 'white', ['bold']], \ 'n': ['darkestcyan', 'white', ['bold']], \ 'v': ['darkestpurple', 'white', ['bold']], \ 'r': ['mediumred', 'white', ['bold']], \ 's': ['white', 'gray5', ['bold']], \ }), \ \ Pl#Hi#Segments(['fileinfo', 'filename'], { \ 'i': ['white', 'darkestgreen', ['bold']], \ 'n': ['white', 'darkestcyan', ['bold']], \ 'v': ['white', 'darkestpurple', ['bold']], \ 'r': ['white', 'mediumred', ['bold']], \ 'N': ['gray0', 'gray2', ['bold']], \ }), \ \ Pl#Hi#Segments(['branch', 'scrollpercent', 'raw', 'filesize'], { \ 'n': ['gray2', 'gray7'], \ 'N': ['gray0', 'gray2'], \ }), \ \ Pl#Hi#Segments(['fileinfo.filepath', 'status'], { \ 'n': ['gray10'], \ 'N': ['gray5'], \ }), \ \ Pl#Hi#Segments(['static_str'], { \ 'n': ['white', 'gray4'], \ 'N': ['gray1', 'gray1'], \ }), \ \ Pl#Hi#Segments(['fileinfo.flags'], { \ 'n': ['white'], \ 'N': ['gray4'], \ }), \ \ Pl#Hi#Segments(['currenttag', 'fileformat', 'fileencoding', 'pwd', 'filetype', 'charcode', 'currhigroup'], { \ 'n': ['gray9', 'gray4'], \ }), \ \ Pl#Hi#Segments(['lineinfo'], { \ 'n': ['gray2', 'gray10'], \ 'N': ['gray2', 'gray4'], \ }), \ \ Pl#Hi#Segments(['errors'], { \ 'n': ['white', 'gray2'], \ }), \ \ Pl#Hi#Segments(['lineinfo.line.tot'], { \ 'n': ['gray2'], \ 'N': ['gray2'], \ }), \ \ Pl#Hi#Segments(['paste_indicator', 'ws_marker'], { \ 'n': ['white', 'brightred', ['bold']], \ }), \ \ Pl#Hi#Segments(['gundo:static_str.name'], { \ 'n': ['white', 'mediumred', ['bold']], \ 'N': ['brightred', 'darkestred', ['bold']], \ }), \ \ Pl#Hi#Segments(['gundo:static_str.buffer'], { \ 'n': ['white', 'darkred'], \ 'N': ['brightred', 'darkestred'], \ }), \ \ Pl#Hi#Segments(['gundo:SPLIT'], { \ 'n': ['white', 'gray2'], \ 'N': ['white', 'gray0'], \ }), \ ]) let g:Powerline_colorscheme='my'
追記[date=2013/01/23]
vim-powerlineはメンテナンスされなくなりました.
新しいpowerlineは https://github.com/Lokaltog/powerline です.
追記[date=2013/08/20]
vim-airlineを使用し始めました.
vim-airlineに乗り換えた - プログラムモグモグ
追記[date=2013/08/22]
vim-airlineを使用するのをやめ, lightline.vimを作りました.
lightline.vim作りました - プラグインの直交性について - プログラムモグモグ