vimのプラグイン lightline.vim のカスタマイズ

今回は,vimのプラグインlightline.vimをカスタマイズする方法についてご紹介します.

 

lightline.vimとは

そもそも,lightline.vimって何???というかたの為に少し説明しておきます.
lightline.vimとはvimのステータスラインをカスタマイズするためのプラグインの一種で,
このプラグインを使うとvimのウィンドウの下から2行目に表示されるステータスラインに現在の編集モード,現在編集しているファイルの名前,ファイルの文字コード,カーソルの位置など様々な情報をユーザーに提示してくれます.
実はオリジナルののvimにも元からステータスラインという機能は備わっていて,set laststatus=2と指定してあげるとステータスラインを表示してくれます.
しかし実際にやって頂くと分かると思うのですが,元から備わっているステータスラインはただただ文字を羅列しているだけの味気なく,ビジュアルも良くはありません.
そこで,lightline.vimというプラグインを用いてvimのステータスラインをかっこよく改造しようと言うのが今回のテーマです.

lightline.vimの概観 (テーマ : wombat)

 

 

vimrcの編集

早速vimrcを編集していきましょう.
私はvimのプラグイン管理にはプラグイン管理用のプラグインshougo/dein.vimを使っていますので,dein.tomlというtomlファイルに上記のように記述していきます.
もし,deinではなく他のプラグインマネージャを使っていたり,そもそもプラグインを直接gitから落としてくるような使い方をしているようでしたら,上記テキストのhook_add = ”’ ~ ”’で囲まれた部分のみを.vimrcに記述していただければ大丈夫です.

 

 

設定の解説

let g:lghtline = {     …      }

この部分では,lightline.vimカラースキームの変更を行っています.
lightlline.vimにはデフォルトで以下のような7種類のカラースキームが用意されています.
vimのカラースキームで有名なものを押さえたといった所でしょうか.

・powerline  (default)
・wombat
・jellybeans
・solarized
・PaperColor
・seoul256
・landscape

powerlineというカラースキームがデフォルトのに設定してされているので,この部分を記述しないとpowerlineと言うカラースキームが適用されます.
solarizedというカラースキームはvimのバックグラウンドの設定がdarkかlightかによって色が変わるそうです.試してみたことがないので分かりませんがが.....
ちなみに私はwombatを使用しています.私の設定しているvimのカラースキームとの色合いが良いので.
皆さんも自分の使っているカラースキームとの相性を考えて色々試してみてはいかがでしょうか.

set laststatus=2
常にステータスラインを表示する設定.
これを指定しないとlightline.vimを入れてもカッコいいステータスラインは表示されないので注意してください.

set nowhowmod
画面下に表示される –挿入– の文字を消す設定です.
lightline.vimによってステータスラインの左側に現在の編集モードが分かりやすく色付きで表示されるため,–挿入–の表示は消してしまいましょう.

 

 

ひと工夫

右下に表示されているファイル名の表示をウィンドウサイズに応じて切り替える.
ウィンドウの幅が狭い時はカレントファイル名を,広い時はファイル名のフルパスを表示させるようにする.
CMakeLists.txtなどのファイルを複数編集する際に,どのCMakeLists.txtを編集しているのか分かりづらくなることがあるので,ウィンドウの幅が広い場合にはフルパスを表示させれるように工夫しました.

<幅が狭い時>

<幅が広い時>

 

 

ひと工夫の解説

6~8行目
デフォルトではこのようになっているが

ファイル名を表示する部分を以下ように変更 (右から2つ目 filename -> filepath)

9~11行目
filepathというコンポーネントにはFilePathという関数を使用するということを明示する.
このFilePathという関数は現在編集しているファイル名を返す関数で,この文字列がステータスラインに表示されます.

14~20行 FilePath関数
ウィンドウのサイズが90文字より大きい場合にはカレントファイルのフルパス(%:s)を,
ウィンドウサイズが90文字以下の場合にはカレントファイル名(%:t)を返す関数を定義しています.
この90文字というのは私の環境での基準ですので,使用しているディスプレイの解像度や普段使用しているvimの文字サイズなどに応じて適切なしきい値を探ってみてください.