← Vim研究所

Vimのステータスラインを表示/非表示にするlaststatusの設定

2020-01-12 公開 ・ 更新: 2026-08-05

他の人のvimrcを見ていて、ステータスラインの見た目が自分の環境と違うことに気づきました。原因は表示内容ではなく、そもそも表示するかどうかの条件を決めるlaststatusという設定でした。

動作
0常に非表示
1ウィンドウが2つ以上のときだけ表示
2常に表示
3画面全体で1本を共有(Neovim限定)
目次(6項目)

laststatusの3つの値

:set laststatus=0   " 常に非表示
:set laststatus=1   " ウィンドウが2つ以上のときだけ表示
:set laststatus=2   " 常に表示

ウィンドウを1つしか開いていないときにステータスラインが出ていないと感じたら、laststatus=1になっている可能性が高いです。分割していないときは非表示、分割した瞬間に表示、という挙動になります。

VimとNeovimでデフォルトが違う

Vimのデフォルトは1ですが、Neovimのデフォルトは2で常に表示されます。加えてNeovim 0.7以降では3という値も使えるようになっていて、これはウィンドウを分割していても画面全体で1本のステータスラインを共有する設定です。分割時にステータスラインが何本も並ぶのが煩わしい場合は試す価値があります。

:set laststatus=3   " Neovim限定。画面全体で1本を共有

表示内容も一緒にカスタマイズできる

laststatusは表示するかどうかの条件だけを決める設定で、実際に何を表示するかはstatuslineオプションで別途指定します。たとえばファイル名・変更フラグ・カーソル位置を表示したい場合は次のように書けます。

set statusline=%F\ %m\ [%l/%L]

%Fがファイルパス、%mが変更フラグ(未保存なら[+])、%l/%Lが現在行/全行数を表します。laststatusで表示条件を決め、statuslineで中身を決める、という役割分担を理解しておくと、他の人のvimrcを読むときにも迷いにくくなります。

設定ファイルに書いておく

laststatusはその場でコマンドとして打つよりも、vimrcinit.luaに書いておくのが普通の使い方です。一時的に借りたサーバーなど、設定ファイルを持ち込めない環境で操作するときにだけ、その場で打つ機会があると考えられます。

要点:ステータスラインが表示されない/常に表示されるで迷ったら、まずlaststatusの値を疑います。Neovimなら3で分割時の見た目もすっきりします。
使ってみて

Vimのデフォルト(laststatus=1)に慣れていたところ、Neovimに移ってから常時表示になっていることに気づかず、しばらく「なぜか毎回ステータスラインが出ている」と勘違いしていました。デフォルト値がエディタによって違うことを知らないと、こういう地味な混乱が起きます。

まとめ

laststatusは0/1/2の3段階(Neovimは3も)でステータスラインの表示条件を切り替えられます。VimとNeovimでデフォルトが異なる点だけ覚えておけば、見た目の違いに戸惑うことはなくなります。

関連記事

← Vim研究所 トップへ戻る