Neovimの設定を1から書かず始める方法(kickstart.nvim/LazyVim)
真っさらなinit.luaから設定を書き始めようとして、何を書けばいいのか分からず手が止まった経験があります。今から始めるなら、コミュニティで育てられた土台を使ったほうが早いです。
ただしこの分野は、土台そのものが入れ替わります。この記事は2026年9月に両方を手元で入れ直して書き直しました。いちばん大きく変わったのは、kickstart.nvimがプラグイン管理をlazy.nvimからNeovim標準のvim.packへ移したことです。確認に使ったのはmacOS 26.4.1上のNeovim 0.12.4で、実際にクローンして初回起動が終わるところまで試した結果を書いています。
目次(8項目)
フォークして育てる:kickstart.nvim
kickstart.nvimは、1つのファイルにコメント付きで設定がまとまったプロジェクトです。READMEは冒頭で「ディストリビューションではない」と断っていて、そのまま使うのではなく、自分のリポジトリにコピーしてコメントを読みながら手を加えていく前提で作られています。手元に取得した版のinit.luaは986行・41KBありました。空行を除いた848行のうち493行がコメント行で、動くコードより解説のほうが多いファイルです。
kickstart.nvimのリポジトリは2026年5月の「Migrate to vim.pack」というコミットでlazy.nvimを外しています。いまのinit.luaにlazy.nvimは出てこず、プラグインはすべてvim.pack.add()で足す形になりました。手元で起動して調べるとexists(":Lazy")は0を返し、:Lazyは定義されていません。「初回起動後に:Lazyでインストールの様子を見る」と書かれた解説は、いまのkickstartには当てはまらないということです。書き方の詳細はvim.packによるプラグイン管理にまとめてあります。
導入は設定ディレクトリへのクローン1回です。READMEはフォークより先に、GitHubの「Use this template」で自分のリポジトリを作る方法を勧めています。どちらでも動きますが、上流の変更を追いかけたいならフォークのほうが素直です。
# 設定ディレクトリ(macOS / Linux)にそのまま置く場合
git clone https://github.com/nvim-lua/kickstart.nvim.git "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim
更新はvim.pack.update()を呼ぶと確認用のバッファが開き、:writeで確定、:quitで取り消しになります。手元でoffline = trueを付けて開いたところ、プラグインごとに置き場所・取得元・リビジョンが並んだバッファが出ました。取り込んだ状態は設定ディレクトリのnvim-pack-lock.jsonに記録されます。kickstartのREADMEは、このファイルを.gitignoreから外してバージョン管理に入れるよう勧めています。
すぐ使える完成形:LazyVim
LazyVimはlazy.nvimを土台にした、最初から一通りの機能(LSP・補完・ファイラー・ステータスラインなど)が組み込まれた設定ディストリビューションです。仕組みを理解するより先に、モダンな環境をすぐ使い始めたい人に向いています。こちらはkickstartと違ってvim.packへは移っておらず、2026年9月時点の最新版v16.0.0(2026年6月2日公開)もlazy.nvimのままです。公式サイトが挙げる必要環境はNeovim 0.11.2以上(LuaJIT付きビルド)とGit 2.19.0以上でした。
導入手順はkickstartと形が違います。LazyVim本体ではなく別リポジトリのstarterテンプレートを設定ディレクトリに置き、.gitを消して自分のリポジトリにします。本体は初回起動時にプラグインとして取得されます。
# LazyVim 本体ではなく starter テンプレートを設定ディレクトリに置く
git clone https://github.com/LazyVim/starter ~/.config/nvim
rm -rf ~/.config/nvim/.git
手元で入れたところ、starterが持つLuaファイルは6本だけで、そこへ32本のプラグインが取得されました。設定を変えるときは既存のファイルを書き換えるのではなく、lua/plugins/に新しいファイルを足して上書きします。2回目以降はsnacks.nvimのスタート画面が出て、ファイル検索やセッション復元がそこから選べました。
どちらを選ぶか
| 見るところ | kickstart.nvim | LazyVim |
|---|---|---|
| 位置づけ | 読ませるための教材 | 完成した土台 |
| プラグイン管理 | vim.pack(Neovim標準) | lazy.nvim |
| 設定の形 | init.lua 1本(986行) | lua/config と lua/plugins に分割 |
| 初期プラグイン | 19本 | 32本 |
| 固定ファイル | nvim-pack-lock.json | lazy-lock.json |
| 更新の入口 | vim.pack.update() | :Lazy |
| 起動時間 | 約85ミリ秒 | 約29ミリ秒 |
判断の軸として効くのは、壊れたときに自分で直せるかどうかです。kickstartは動いているコードが全部自分のinit.luaにあるので、おかしな挙動の原因になっている行をその場で消せます。LazyVimは設定の本体がプラグインとして別ディレクトリに置かれ、手元にあるのは上書き用のファイルだけなので、既定値がどこで決まっているかを追う手間が先に来ます。
乗り換えやすさも違います。kickstartは最初から自分のリポジトリなので、気に入らない部分を削っていけばそのまま自作の設定になります。LazyVimから離れるときは、依存しているキーマップや自動コマンドを書き直すことになるため、いったん全部を捨てて組み直すほうが早いです。離れる予定がない人にとっては、手数がいちばん少ない選択でもあります。
意外だったのは起動時間です。同じ端末で3回ずつ--startuptimeを取ると、プラグイン19本のkickstartが85〜91ミリ秒、32本のLazyVimが29〜30ミリ秒でした(素のNeovimは約3ミリ秒)。数が少ないほうが遅い理由は読み込み方にあります。vim.packには遅延読み込みの仕組みが無く、vim.pack.add()を呼んだ時点でそのプラグインが使える状態になります。lazy.nvimはキー・コマンド・イベントを引き金にして後回しにできるので、数を増やしても起動には乗りません。「最小限だから軽い」という想像は、この2つに関しては逆でした。
既存の設定を壊さずに試す
どちらのREADMEも「既存の設定を退避してから入れる」と書いていますが、退避しなくても並べて置けます。環境変数NVIM_APPNAMEに別名を渡すと、Neovimが読む設定ディレクトリとデータディレクトリがまるごとその名前に切り替わります。
# 既存の ~/.config/nvim には触らず、別名の設定として置く
git clone https://github.com/nvim-lua/kickstart.nvim.git ~/.config/nvim-kickstart
alias nvim-kickstart='NVIM_APPNAME=nvim-kickstart nvim'
手元で確かめた挙動は次のとおりです。何も付けずに起動するとstdpath("config")は~/.config/nvimを返し、NVIM_APPNAME=nvim-kickstartを付けると~/.config/nvim-kickstartを返しました。データ側も~/.local/share/nvim-kickstartに分かれます。両方のディレクトリに別々のinit.luaを置いて起動すると、読まれるファイルが確かに切り替わりました。Windowsでの置き場所とstdpath()の読み方はWindows版Neovimの設定ファイルの配置場所にまとめてあります。
初回起動では、設定を読み込んだあとにプラグインの取得が走ります。空のディレクトリからkickstartを起動したときは19本の取得に約1分40秒かかり、置き場所は~/.local/share/nvim/site/pack/core/opt/でした。LazyVimでも、lazy.nvimのインストール画面が出たまま数十秒かかります。終わるまで進捗が流れ続けるので、固まったと勘違いして途中で閉じないことです。
入れ終わったら:checkhealthを実行します。見るのは外部コマンドの不足です。手元ではtree-sitterのCLIとripgrepが無く、nvim-treesitterとtelescopeがエラーとして報告されました。CLIが無いまま起動するとパーサのビルドが失敗し、起動のたびにエラーが並びました。kickstartはこの2つを外部依存としてREADMEに列挙しているので、先に入れておくと初回から静かに立ち上がります。逆に、使う予定の無い言語について出るMasonの警告は放置して構いません。kickstart自身のヘルスチェックにも「使うつもりのものだけ直せばよい」と書かれています。
設定が読まれているか怪しいときは:scriptnamesで読み込み順を確認する方法が使えます。やめるときは、別名で入れてあれば~/.config/nvim-kickstartと~/.local/share/nvim-kickstartを消すだけで、もとの~/.config/nvimには手を付けずに済みます。
Vim(Neovimでない方)を使う場合
ここで挙げた2つはどちらもNeovim専用です。kickstartが使うvim.packはNeovim 0.12の機能で、Vimにはありません。Vimにもパッケージの仕組みはあり、手元のVim 9.1でhas("packages")は1を返しますが、これは決まった場所に置かれたプラグインを読み込むだけで、取得や更新まではしません。
そのためVim側では、いまもプラグインマネージャを自分で入れる形が続きます。vim-plugは2026年5月にも更新されていて現役ですが、dein.vimの最終更新は2025年9月で止まっています。いずれにせよ設定はVim script前提になるので、この記事の2つをそのまま持ち込むことはできません。
Neovim側の事情は0.12でもう一段変わりました。プラグイン管理がvim.packとして本体に入り、LSPの設定もプラグイン無しで書けるようになったので、ディストリビューションを土台にせず自分で小さく組む選択肢が現実的になっています。kickstartがvim.packへ移ったのも同じ流れの上にあり、そのinit.luaは「標準機能だけでどこまで書けるか」の実例としても読めます。
情報を探すなら
個別の設定例やプラグインの組み合わせ方は、GitHubで公開されているdotfilesリポジトリを探すのが早いです。ただし前提が数年で入れ替わる分野なので、参考にする前に最終更新を見てください。Vim script前提の設定や、lazy.nvimのbootstrapコードを写した記事は、いま同じように書いても噛み合いません。
この見方はディストリビューションを選ぶときにも使えます。2026年9月2日にGitHubのAPIで各リポジトリの最終更新を取ると、次のように分かれました。止まっているものを避けるだけで、行き止まる確率は下がります。
| プロジェクト | 最終更新 | 形 |
|---|---|---|
| kickstart.nvim | 2026-08-07 | 1ファイルの教材 |
| AstroNvim | 2026-08-13 | ディストリビューション |
| NvChad | 2026-07-03 | ディストリビューション |
| LazyVim | 2026-06-02 | ディストリビューション |
| LunarVim | 2025-06-05 | ディストリビューション |
NVIM_APPNAMEで別名にすれば、いまの設定を消さずに両方試せます。
最初はゼロから設定を書こうとして、LSPの設定だけで心が折れかけました。今回kickstartを入れ直して気づいたのは、これが設定ファイルというより読み物だということです。設定として動かすだけなら1行も読まずに済むので、自分は上から順に読むのを早々にあきらめました。結局は、キーが思ったとおりに効かないと感じた箇所だけ検索して、その周りのコメントを読む形になりました。教材として渡されたものを教材として使わなかったわけですが、その順番のほうが続きました。
まとめ
2026年9月時点で、kickstart.nvimはプラグイン管理をNeovim標準のvim.packへ移し、LazyVimはlazy.nvimのまま更新を続けています。同じ「テンプレートから始める」でも土台が別物なので、手順を書いた記事は日付を先に確認してください。
選ぶ順番としては、NVIM_APPNAMEで別名にして両方を1日ずつ使い、起動の速さと設定の追いやすさのどちらが自分に効くかを見てから片方を残すのが確実です。合わなければディレクトリを2つ消すだけで元に戻ります。