Vim/Neovimにスタート画面を追加する(vim-startify / snacks.nvim)
Vim/Neovimを何もファイル指定せずに起動すると、無題のバッファが開くだけで、作業を始めるには自分でファイルを探す一手間がかかります。前回開いていたファイルやセッションを開くことのほうが圧倒的に多いなら、起動直後にその候補を一覧表示してくれるスタート画面プラグインを入れておくと、この一手間が省けます。
Vim向け:vim-startify
クラシックなVimで長く使われているスタート画面プラグインです。
Plug 'mhinz/vim-startify'
導入するだけで、最近開いたファイルやブックマークが番号付きで一覧表示され、数字キーひとつで開けます。よく使う機能は次のとおりです。
| キー | 動作 |
|---|---|
| 数字 | 表示されている行のファイルを開く |
| e | 空のバッファを開く |
| s/v/t | 選択したファイルを分割/垂直分割/タブで開く |
| q | スタート画面を閉じる |
作業中にもう一度スタート画面を見たくなったら:Startifyで呼び出せます。セッション管理コマンド(:SSave/:SLoad)も備えており、プロジェクトごとの作業状態を保存・復元するのにも使えます。
Neovim向け:snacks.nvimのダッシュボード
Neovimでlazy.nvimベースの構成を組んでいる場合、snacks.nvimのダッシュボード機能を使うのが今の主流になっています。
-- lazy.nvimでの例
{
'folke/snacks.nvim',
opts = {
dashboard = { enabled = true },
},
},
最近使ったファイル・プロジェクト一覧・セッション復元などをセクションとして自由に組み合わせられる、宣言的な設定が特徴です。telescope.nvimやoil.nvimのような、すでに導入済みのプラグインとの連携もしやすくなっています。同系統の選択肢としてalpha-nvimやdashboard-nvimもあり、いずれも活発に使われています。
ヘッダーをカスタマイズする
両プラグインとも、起動画面の上部に表示するテキスト(ヘッダー)をカスタマイズできます。vim-startifyの場合は配列で1行ずつ指定します。
let g:startify_custom_header = [
\ '============================',
\ ' Vim - Vi IMproved',
\ '============================',
\]
アスキーアートを入れているユーザーも多く、自分だけのスタート画面を作る楽しみもあります。
起動を遅くしたくない場合
スタート画面プラグインは起動時に一覧を構築するため、ファイル履歴が膨大になると起動がわずかに遅くなることがあります。表示件数を制限する設定(vim-startifyならg:startify_files_number)を絞っておくと、快適さを保ちながら使えます。
Neovim環境をlazy.nvim構成に移行したタイミングでvim-startifyからsnacks.nvimのダッシュボードに切り替えました。最近使ったファイルとプロジェクト一覧が同じ画面に並ぶようになり、起動直後にどのプロジェクトへ戻るかを選ぶ動作が以前よりスムーズになりました。
まとめ
起動直後の「ファイルを探す一手間」は、スタート画面プラグインで解消できます。クラシックなVimならvim-startify、Neovimのモダンな構成ならsnacks.nvimのダッシュボードが現在の定番選択肢になっています。