VimでALE (Asynchronous Lint Engine)を使っていて, summaryをstatuslineに表示したいと思った.

確かALE内の関数でステータスライン出力してくれる関数あったよなと思ったら, もう存在していなかった. 現在はlightline-aleを使うのがいいっぽい.

ただ,デフォルトだと例えばエラーが10個あった場合は E: 10 と表示され少しかっこ悪い.

lightline-aleのREADMEには, Using icons as indicators というセクションがあり, Font Awesomeのアイコンとかつかってやってもいいよね,と書いてある. 以下のようにダブルクオーテーションで囲わないとエラー出るので注意.

let g:lightline#ale#indicator_checking = " \uf110 "
let g:lightline#ale#indicator_warnings = "\uf071 "
let g:lightline#ale#indicator_errors = "\uf05e "
let g:lightline#ale#indicator_ok = "\uf00c "

そこでFont Awesomeにもフォントを対応させたかったため, Nerd Fonts を導入することにした.

元々Powerline fontsを使っていたが, 以下のようにそれを包含するような形になっている.

nerd-diagram

dotfilesで管理しているため, 自動化のためのスクリプト に追記する.

nerd_fonts() {
  git clone --branch=master --depth 1 https://github.com/ryanoasis/nerd-fonts.git
  cd nerd-fonts
  ./install.sh $1  # "Source" to install Sauce Code Nerd Font
  cd ..
  rm -rf nerd-fonts
}

自動化するためにcloneして公式のインストールスクリプトを叩いているが, clone時にフォントを全部ダウンロードしてくるためかなり時間がかかる.

branchを見ると gh-pages とかいろいろバージョン番号のものがたくさんあるが, 最新のmasterブランチだけあればいいので,--branch=master --depth=1 をつける.

これでもかなり時間がかかる. 本当はcurlなどで直接ファイル持ってきて入れるほうが早いが, どうせこの関数を呼ぶのは1回きりなのでまいっかという感じ.

自分は Source Code Pro が好きなので, 対応する Sauce Code Nerd Font をいれる.

nerd_fonts Source でインストールできる.

インストールが終われば,あとは使っているターミナルの設定からフォントを変えるだけ.

早速Vimで左上のタブ,右下及び該当の行のLinterのエラー表示に使ってみた. ale-nerd-font-status