なんてちっぽけで なんて意味のない なんて無力な@It_is_Rです。©️尾崎豊
Vimのステータスバーをかっこよくしたいと思い、vim-airlineを使ってみたのですが、日本語の情報が少なく、思うように設定するのがなかなか大変でした。
そこで今回はvim-airlineの使い方を記事にしてみました。
vim-airlineとは
vim-airlineは、高速かつ軽量で、PowerLineのかわりとなるVimプラグインです。
Vimのステータスバーをかっこよくしてくれます。
また、vim-airline-themesを使うことによって、自分の好きなテーマを選ぶことができます。
人それぞれ違うと思いますが、こちらはvim-airlineに関しての設定をしていない状態です。
これでも十分綺麗ですね。
インストール
では、vim-airlineとをvim-airline-themesをインストールしてみましょう。
$ git clone https://github.com/vim-airline/vim-airline ~/.vim/bundle/vim-airline
$ git clone https://github.com/vim-airline/vim-airline-themes ~/.vim/bundle/vim-airline-themes
vim-plugを使っているのならこちら。
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
PowerLine fontのインストール
もし見た目が崩れている場合は、PowerLine fontを入れましょう。
$ git clone https://github.com/powerline/fonts.git --depth=1
$ cd fonts
$ ./install.sh
あとはターミナルの「環境設定」からインストールしたフォントを選択すればOKです。
大抵のフォントは、最後に「for powerline」と書かれているので、分かると思います。
私は「Fura Mono Powerline」にしました。
vim-airlineの基本画面
vim-airlineの基本画面は次のようになっています。
A : モードの表示、crypt、spell、pasteなどの追加要素を表示します。
B : バージョン管理システムの情報を表示します。
C : ファイル名や、読み取り専用のフラグを表示します。
X : ファイル形式を表示します。
Y : ファイルのエンコードを表示します。
Z : カーソル位置や最大行などを表示します。
タブについて
vim-airlineの特徴といえば、何と言ってもタブ機能です。
このタブ、実際にはbufferがタブのように機能しているような感じで、:tabnew
で表示されるタブとは少し違います。
タブを有効にする
ではタブを有効にしてみましょう。.vimrcに以下を入力します。
.vimrc
let g:airline#extensions#tabline#enabled = 1
例えば、test.jsファイルを変更している最中に、別のファイルを開きたくなりました。:e test2.js
で、test2.jsファイルを開きます。
さらにtest3.jsファイルを開きました。
するとこのように、開いたファイルがタブで表示されます。
タブを切り替える
タブを切り替える方法ですが、実際にはbufferなので、一応:bprevious
や:bnext
で切り替えられます。
しかし、そんなのめんどくさいですよね。せっかく便利なんだから、タブの切り替えもスムーズに行いたいです。
そこで.vimrcに以下を入力します。
.vimrc
nmap <C-p> <Plug>AirlineSelectPrevTab
nmap <C-n> <Plug>AirlineSelectNextTab
これを入力しておけば、⌃Control+pや⌃Control+nでタブを切り替えられるようになります。
タブに番号を表示する
タブに番号を表示することもできます。
.vimrc
let g:airline#extensions#tabline#buffer_idx_mode = 1
小さくて見えづらいですが、タブに番号が表示されました。
また、番号のフォーマットを変更することもできます。
.vimrc
let g:airline#extensions#tabline#buffer_idx_format = {
\ '0': '0 ',
\ '1': '1 ',
\ '2': '2 ',
\ '3': '3 ',
\ '4': '4 ',
\ '5': '5 ',
\ '6': '6 ',
\ '7': '7 ',
\ '8': '8 ',
\ '9': '9 '
\}
このようにすることで、タブの番号を大きくすることもできました。
タブの区切りを変更
タブの区切り文字を変更することもできます。
.vimrc
let g:airline#extensions#tabline#left_sep = '\'
let g:airline#extensions#tabline#left_alt_sep = '/'
いいかどうかは別として、このようになります。
各モードで表示される文字の変更
Vimには様々なモードがありますが、その表示される文字を変更することもできます。
.vimrc
let g:airline_mode_map = {
\ 'n' : 'Normal',
\ 'i' : 'Insert',
\ 'R' : 'Replace',
\ 'c' : 'Command',
\ 'v' : 'Visual',
\ 'V' : 'V-Line',
\ '⌃V' : 'V-Block',
\ }
ただ、⌃Vに関しては特殊な文字なので、コピペしても反映されません。
制御コード(⌃V)は、⌃Control+vを2回押して入力する必要があります。
記号を変更する
Vimにはいくつかのモードなど、機能がありますが、それらを様々な記号を使って表すこともできます。
.vimrc
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
"左側に使用されるセパレータ
let g:airline_left_sep = '⮀'
let g:airline_left_alt_sep = '⮁'
"右側に使用されるセパレータ
let g:airline_right_sep = '⮂'
let g:airline_right_alt_sep = '⮃'
let g:airline_symbols.crypt = '🔒' "暗号化されたファイル
let g:airline_symbols.linenr = '¶' "行
let g:airline_symbols.maxlinenr = '㏑' "最大行
let g:airline_symbols.branch = '⭠' "gitブランチ
let g:airline_symbols.paste = 'ρ' "ペーストモード
let g:airline_symbols.spell = 'Ꞩ' "スペルチェック
let g:airline_symbols.notexists = '∄' "gitで管理されていない場合
let g:airline_symbols.whitespace = 'Ξ' "空白の警告(余分な空白など)
実際に表示させてみたものです。
暗号化したファイルを開いている場合は下のようになります。
左下に鍵マークがつきました。
ペーストモードやスペルチェック、gitブランチの記号は、それらが有効になっていないと反映されません。
ステータスラインに表示する項目を変更する
ステータスラインに表示する項目を変更することもできます。
並び順(レイアウト)を変更
ステータスラインの項目の並び順を変更してみます。
.vimrc
let g:airline#extensions#default#layout = [
\ [ 'z', 'y', 'x' ],
\ [ 'c', 'b', 'a', 'error', 'warning']
\ ]
このように、並び順が変更されます。
表示する項目を変更
vim-airlineのヘルプによると、デフォルトでは、以下のようになっているそうです。
A : mode, crypt, paste, spell, iminsert
B : hunks, branch
C : bufferline または filename
X : tagbar, filetype, virtualenv
Y : fileencoding, fileformat
Z : percentage, line number, column number
これらを変更するには、let g:airline_section_{項目を設定する場所} = airline#section#create(['{入れたい項目}', '{入れたい項目}'])
といったふうにします。
Aに表示する項目に、ペーストモードやスペルチェックが有効かどうかの項目がありますが、別にそんなの表示する必要もない気もします。
そこで、Aにはモードと、暗号化されているかどうかのみ表示するように設定を変更してみます。
.vimrc
let g:airline_section_a = airline#section#create(['mode', 'crypt'])
ペーストモード、スペルチェックが有効になっているにも関わらず、そのマークが表示されなくなりました。
暗号化はしていないので、鍵マークは表示されていません。
テーマを変更する
テーマを変更すると、見た目が変わります。
様々なテーマが用意されているので、好きな物を選びましょう。
テーマの変更は、以下のように行います。
.vimrc
let g:airline_theme = 'papercolor'
また、その場で確認したい場合は、:AirlineTheme {theme-name}
を使うと便利です。
例
:AirlineTheme papercolor
テーマの一覧は、vim-airlineのスクリーンショットを参考にしてください。
vim-airline Screenshots
挿入モードからノーマルモードへの切り替えの遅延をなくす
挿入モードからEscでノーマルモードに戻す時、少し時間がかかる場合は次のコマンドを.vimrcに入れてみましょう。
.vimrc
set ttimeoutlen=50
まとめ
Vimはやっぱり見やすさとかっこよさの両方を兼ね備えていてこそ、効率のいい作業ができるのだと思います。
vim-airlineを使えば、Vimのステータスバーを簡単にかっこよくできるので、ぜひ使ってみてください。
以上、vim-airlineの使い方でした。