Vimを使う - PowerLineプラグイン「vim-airline」

【連載】

にわか管理者のためのLinux運用入門

【第231回】Vimを使う - PowerLineプラグイン「vim-airline」

[2020/05/26 08:00]後藤大地 ブックマーク ブックマーク

以前、Microsoftが「Cascadia Code」というフォントを公開したこと、Cascadia CodeはWindows Terminalで使用できること、そして公開されたフォントにはPowerLineに対応したファミリーフォントが含まれており、VimでPowerLineを利用することができること、などを取り上げた。関連記事は以下の通りだ。


さらに、前回まででVimで設定ファイルやプラグインを使う方法を紹介した。そこで今回は、以前PowerLineを紹介した際には省略した「VimでPowerLineを設定する方法」について説明しよう。

まず、「Vim Awesome」でPowerLineを実現するVimのプラグインを検索する。今回紹介するプラグインは「vim-airline」だ。このプラグインを利用する際には「vim-airline-themes」も必要とする。どちらもVim Awesomeで検索できる。

vim-airline - Vim Awesome

vim-airline-themes - Vim Awesome

これらのプラグインをインストールして使っていこう。

vim-airlineを使うための設定

これまで本連載で解説してきた通りに設定ファイルを作っているのなら、現在の~/.vimrcは次のようになっているはずだ。

"dein Scripts-----------------------------
if &compatible
  set nocompatible               " Be iMproved
endif

" Required:
set runtimepath+=/home/daichi/.cache/dein/./repos/github.com/Shougo/dein.vim

" Required:
if dein#load_state('/home/daichi/.cache/dein/.')
  call dein#begin('/home/daichi/.cache/dein/.')

  " Let dein manage dein
  " Required:
  call dein#add('/home/daichi/.cache/dein/./repos/github.com/Shougo/dein.vim')

  " Add or remove your plugins here
  call dein#add('junegunn/seoul256.vim')

  " Required:
  call dein#end()
  call dein#save_state()
endif

" Required:
filetype plugin indent on
syntax enable

" If you want to install not installed plugins on startup.
if dein#check_install()
  call dein#install()
endif

" seoul256
let g:seoul256_background = 233
colo seoul256

"End dein Scripts-------------------------

set number
syntax on
set whichwrap=b,s,[,],<,>,~,h,l
set cursorline
set incsearch
set hlsearch
set ignorecase

ここにvim-airlineとvim-airline-themesプラグインの設定を追加する。まず、現在次のようになっている行を探してほしい。

  " Add or remove your plugins here
  call dein#add('junegunn/seoul256.vim')

上記の行に、次のようにvim-airlineとvim-airline-themesを使用する設定を追加する。

  " Add or remove your plugins here
  call dein#add('junegunn/seoul256.vim')
  call dein#add('vim-airline/vim-airline')
  call dein#add('vim-airline/vim-airline-themes')

次に、複数あるPowerLineのステータスラインのカラーテーマのうち、どのテーマを使うのかを指定する。例えば、前回追加したseoul256の設定は以下のようになっているはずだ。

" seoul256
let g:seoul256_background = 233
colo seoul256

これを次のように変更し、PowerLineのテーマとして「molokai」というテーマを使う設定にしてみよう。

" seoul256
let g:seoul256_background = 233
colo seoul256

" vim-airline
let g:airline_powerline_fonts = 1
let g:airline_theme = 'molokai'

ほかにも指定できるテーマには、次のようなものがある。molokaiが合わなかったら別のテーマを試してみてほしい。

vim-airline-themes
テーマ alduin、angr、atomic、ayu_light、ayu_mirage、ayu_dark、badcat、badwolf、base16、base16_vim、base16_shell、base16_3024、base16_adwaita、base16_apathy、base16_ashes、base16_atelierdune、base16_atelierforest、base16_atelierheath、base16_atelierlakeside、base16_atelierseaside、base16_bespin、base16_brewer、base16_bright、base16_chalk、base16_classic、base16_codeschool、base16_colors、base16_default、base16_eighties、base16_embers、base16_flat、base16_google、base16_grayscale、base16_greenscreen、base16_gruvbox_dark_hard、base16_harmonic16、base16_hopscotch、base16_isotope、base16_londontube、base16_marrakesh、base16_mocha、base16_monokai、base16_nord、base16_ocean、base16_oceanicnext、base16_paraiso、base16_pop、base16_railscasts、base16_seti、base16_shapeshifter、base16_solarized、base16_spacemacs、base16_summerfruit、base16_tomorrow、base16_twilight、base16_vim、base16color、behelit、biogoo、bubblegum、cobalt2、cool、dark、dark_minimal、desertink、deus、distinguished、durant、faryfloss、fruit_punch、hybrid、hybridline、jay、jellybeans、jet、kalisi、kolor、laederon、light、lucius、luna、minimalist、molokai、monochrome、murmur、night_owl、onedark、ouo、papercolor、peaksea、powerlineish、qwq、raven、ravenpower、seagull、serene、sierra、silver、simple、soda、sol、solarized、solarized_flood、term、term_light、tomorrow、ubaryd、understated、violet、wombat、xtermlight、zenburn

設定ファイルを変更する前のVimの見た目は次のようになっている。

vim-airlineを使用する前のVim

設定ファイルを変更すると、PowerLineが有効になる(最初の起動時にはgitを使ってプラグインのダウンロードが行われるのでしばらく時間がかかる)。

vim-airlineを使用した状態のVim

vim-airlineとvim-airline-themesのインストールが完了するとPowerLineが機能するようになる。しかし、よく見るとわかるのだが、肝心のPowerLineフォントの部分が化けてしまっている。

Cascadia Mono PLをインストールして設定を変更する

執筆時点で筆者が使っているWindows Terminalのバージョンは0.11.1333.0だ。このバージョンはバージョン1.0とそれほど違いはないと考えられる。そのデフォルトフォントは、PowerLineフォントが含まれていない「Cascadia Mono」だ。表示が化けるのは当然だろう。

Windows Terminalのデフォルトフォントは「Cascadia Mono」

そして、Windows Terminalをインストールすることで同時にインストールされるフォントは次のように「Cascadia Code」と「Cascadia Mono」だ。PowerLineフォントは含まれていない。

Windows Terminalに同梱されるフォントは「Cascadia Code」と「Cascadia Mono」

PowerLineを機能させるにはPowerLineフォントを含んだCascadiaフォントをインストールする必要がある。「microsoft/cascadia-code」にアクセスし、リリースから最新のCascadiaフォントをダウンロードする。

Github.com - microsoft/cascadia-codeから最新のCascadiaフォントをダウンロードする

ダウンロードしてきたアーカイブを展開すると、次のように「Cascadia Mono PLフォント」の存在を確認できる。

Cascadia Mono PLが含まれていることを確認

フォントのインストールは設定アプリケーションを使ってもよいし、フォントファイルをダブルクリックしてビューアからインストールしてもよい。

フォントファイルをダブルクリックしてからインストール

「Cascadia Mono PL」と、ついでに「Cascadia Code PL」もインストールすると、次のようになる。

Cascadiaフォントのすべてのファミリーをインストール済みの状態

「Cascadia Mono PL」をインストールしたら、次のようにWindows Terminalに「Cascadia Mono PL」を使用する設定を追加する。

Windows TerminalからUbuntu-18.04使用時のフォントを「Cascadia Mono PL」に変更

これで準備完了だ。

PowerLineが機能しているVim

「Cascadia Mono PL」のインストールと「Windows Terminalのフォント設定」が完了すれば、Vimの表示は次のように期待通りになる。

PowerLineが期待通りに機能しているVim

ステータスバーの表示がPowerLine対応になったからといって作業効率が著しく向上するといったことはない。ただ単に「かっこいい」という側面が強い。しかし、毎日使うのだ。かっこいいに越したことはないだろう。

最後に、今回の設定を反映させた~/.vimrcファイルを掲載しておく。利用する際の参考にしてもらえれば幸いだ。

"dein Scripts-----------------------------
if &compatible
  set nocompatible               " Be iMproved
endif

" Required:
set runtimepath+=/home/daichi/.cache/dein/./repos/github.com/Shougo/dein.vim

" Required:
if dein#load_state('/home/daichi/.cache/dein/.')
  call dein#begin('/home/daichi/.cache/dein/.')

  " Let dein manage dein
  " Required:
  call dein#add('/home/daichi/.cache/dein/./repos/github.com/Shougo/dein.vim')

  " Add or remove your plugins here
  call dein#add('junegunn/seoul256.vim')
  call dein#add('vim-airline/vim-airline')
  call dein#add('vim-airline/vim-airline-themes')

  " Required:
  call dein#end()
  call dein#save_state()
endif

" Required:
filetype plugin indent on
syntax enable

" If you want to install not installed plugins on startup.
if dein#check_install()
  call dein#install()
endif

" seoul256
let g:seoul256_background = 233
colo seoul256

" vim-airline
let g:airline_powerline_fonts = 1
let g:airline_theme = 'molokai'

"End dein Scripts-------------------------

set number
syntax on
set whichwrap=b,s,[,],<,>,~,h,l
set cursorline
set incsearch
set hlsearch
set ignorecase

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

一覧はこちら

連載目次

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします
注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
[解説動画] 個人の業務効率化術 - 短時間集中はこうして作る
ミッションステートメント
教えてカナコさん! これならわかるAI入門
知りたい! カナコさん 皆で話そうAIのコト
対話システムをつくろう! Python超入門
Kubernetes入門
AWSで作るクラウドネイティブアプリケーションの基本
PowerShell Core入門
徹底研究! ハイブリッドクラウド
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

会員登録(無料)

ページの先頭に戻る