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

今回は,vimのステータスラインに有益な情報を見やすく表示してくれるプラグイン、lightline.vimをカスタマイズする方法についてご紹介します.

参考:私が使用している便利なプラグイン一覧
vim とても強力なプラグインたち

lightline.vimを用いてステータスラインを美しく

lightline.vimを用いたステータスラインのカスタマイズ例

vimにはステータスラインという、編集ファイルの文字コードを初めとする詳細情報を表示することができます。

:set statusline=2

素の味気ないstatusline

しかし上の写真からも分かるよう、素のvimで表示されるstatuslineはあまりにも味気ないのです。

そこで、lightline.vimというプラグインを用いてstatuslineを美しくカスタマイズしましょう。

https://github.com/itchyny/lightline.vim

プラグインlightline.vimの導入

筆者はdeinにてプラグイン管理を行っておりますので、tomlファイルの記述例を紹介します。

[[plugins]]
repo = 'itchyny/lightline.vim'
hook_add = '''
    let g:lightline = { 'colorscheme': 'wombat' }
    set laststatus=2
    set noshowmode
'''

‘colorscheme’: ‘wombat’
でlightlineのカラースキームを設定します。
lightlineにはデフォルトで、’powerline’, ‘wombat’, ‘jellybeans’, ‘solarized dark’, ‘solarized light’, ‘PaperColor light’, ‘seoul256’, ‘one’, ‘landscape’ のカラースキームが収録されています。

set laststatus=2
ステータスラインを表示する設定です。

set noshowmode
左下に表示される -挿入- などの文字を表示しない設定にします。(lightlineで現在のモードが表示されるため。)

もしdeinではなく他のプラグインマネージャを使っている場合、上記テキストのhook_add = ”’ ~ ”’で囲まれた部分のみを.vimrcに記述していただければ大丈夫です。

表示内容のカスタマイズ

lightlineでは、以下のように直感的にステータスラインに表示する項目を設定することができます。

 let g:lightline = {
    \  'enable': { 'tabline': 0 },
    \  'colorscheme': 'wombat',
    \  'active': {
    \    'left': [ ['mode', 'paste'], ['readonly', 'filename', 'modified'] ],
    \    'right': [ ['percent'], ['fileencording'] ] 
    \  },
    \  'inactive': {
    \    'left': [ ['filename'] ],
    \    'right': [ ['percent'], ['fileencording'] ]
    \  },
    \  'separator': { 'left': "", 'right': "" },
    \  'subseparator' :{ 'left': '|', 'right': '|' }
    \} 

表示したい項目をリスト形式で記述していくだけの簡単設定です。
使用できる文字列は、lightline.vimのgitページを参照していただければと思います。

セパレータ、サブセパレータも設定することができます。

表示内容に独自の関数を使用する

lightlineの表示内容に独自の関数を設定することもできます。

function! Myfunction()
    return 'hogehoge'
endfunction
let g:lightline = {
    \  'enable': { 'tabline': 0 },
    \  'colorscheme': 'wombat',
    \  'active': {
    \    'left': [ ['mode', 'paste'], ['readonly', 'filename', 'modified'] ],
    \    'right': [ ['myfunction'], ['fileencording'] ]
    \  },
    \  'component_function': {
    \    'myfunction': 'Myfunction',
    \  }
    \}

上記のように、lightlineの表示内容に独自関数を設定することもできます。この機能のおかげでカスタマイズの幅がグッと広がりますね。

powerline-shellのような見た目にも

最後に、セパレータ・サブセパレータを編集するとこのようにposerline-shellのようなお洒落な見た目にすることもできます。

separatorを設定したお洒落なステータスライン

このような見た目にするために、

ターミナルでの使用フォントをNerd Fontに変更する
Nerd Fontとは、、、既存フォントとアイコンフォントを合成したもの。私はこちらのサイトのUbuntuMono Nerd Fontを用いています。
(Ubuntu Mono以外にも、様々なプログラミングに適したフォントがNerd Fontとしてダウンロードできます。)

lightline.vimの設定でセパレータを設定する
セパレータに適した文字は、上記Nerd Fontサイトのアイコン検索にて’nf-pl’と検索すると出てきます。左右のセパレータをそれぞれ指定します。

セパレータの設定しだいで、ターミナルとは思えないような面白い見た目になると思うので、色々設定してみてはいかがでしょうか。

参考:私が使用している便利なプラグイン一覧
vim とても強力なプラグインたち

以上、vimのプラグインlightline.vim のカスタマイズについてでした。