MENU

Neovim — Vimをモダン化した有志主導のフォーク

Neovim アイキャッチ
Neovim

Neovimは2014年にティアーゴ・ド・パドゥア(Thiago de Arruda Padilha)らを中心とする有志がVimをフォークして始めたエディタプロジェクトです。本家Vimの保守的な開発体制では取り込みにくかった非同期ジョブ制御や組み込みLuaランタイム、LSPクライアントなどを次々と実装し、「Vimの操作体系を守りながら、現代の開発環境に必要な機能を再設計する」ことを目標に進化を続けてきました。なお、Vim本家の作者ブラム・ムーレナール自身はNeovim計画には参加していません。本記事ではNeovimの設計と現在地を整理します。

目次

この記事の目次

  1. Neovimが備えるモダンな三本柱
  2. Vim開発体制への不満から生まれたフォーク
  3. 実務での使われ方
  4. Vim・VS Code・Helixとの位置関係
  5. まとめ

Neovimが備えるモダンな三本柱

Neovimが備えるモダンな三本柱

Neovim最大の構造的特徴は、非同期I/Oに対応したアーキテクチャと組み込みLuaランタイムです。本家Vimが長年Vim scriptという独自言語を使っていたのに対し、NeovimはLua 5.1(LuaJIT)を内包し、init.luaで設定を書けるようにしました。実行速度・記述量・エコシステムの広さの三点でVim scriptを上回り、現代的なプラグインのほとんどがLua前提で書かれるようになっています。

二つ目の柱がLanguage Server Protocol(LSP)クライアントの標準搭載で、外部のlanguage server(rust-analyzer、gopls、tsserverなど)とJSON-RPCで通信して補完・定義ジャンプ・診断表示を実現します。三つ目はTree-sitterによる構文解析エンジンの組み込みで、正規表現に依存しないシンタックスハイライトとAST操作を可能にしました。これらの基盤により、Neovimは「軽量だがVS Code級の機能を引き出せる」現代的エディタへと変身しています。同時にVimとの後方互換性も保たれ、既存の.vimrcやプラグインも大半が動作します。

Vim開発体制への不満から生まれたフォーク

Vim開発体制への不満から生まれたフォーク

Neovimは2014年、ブラジル人開発者ティアーゴ・ド・パドゥア(Thiago Padilha)が「Vimに非同期ジョブ機能を追加するパッチが本家で取り込まれない」状況を打開するため、Vimの完全フォークとして開始しました。クラウドファンディングのBountysource上で開発資金を募り、目標額の3倍にあたる7万ドル超を集めて常勤開発体制を立ち上げています。この時点で、Vim本家の保守的な開発文化に対する不満が世界中に存在することが浮き彫りになりました。

2017年にv0.2が安定リリースされ、非同期API・端末エミュレータの内蔵・msgpack-rpcを介した外部GUI実装(VimR、Neovide、Goneovimなど)への対応が出揃いました。2020年代に入ってLuaリラントイム、組み込みLSP、Tree-sitterといった機能が次々と加わり、2022年8月のv0.8では「LSP/Tree-sitter標準搭載」が確立しました。なお、Vim本家の作者ブラム・ムーレナール氏は2023年8月に逝去し、本家の体制は別のメンテナへ引き継がれましたが、Neovimはこれとは独立して有志ベースで進化を続け、両者が互いの良い点を取り入れあう関係が続いています。

実務での使われ方

実務での使われ方

Neovimは現代の開発者の手元で、LSPとLuaを駆使してフル機能IDEとして使われる場面が増えました。個別にプラグインを組み合わせるのは時間がかかるため、ディストリビューションと呼ばれる初期セットアップ集が人気で、LazyVim、AstroVim、LunarVim、NvChadといった構成済みパッケージを入れるだけで、補完・診断・整形・デバッグまでが揃った環境を即座に手にできます。tmuxと組み合わせて、左にNeovim、右にREPLやテストランナー、下にログという三画面構成にする使い手も多くいます。

ファイル検索やリポジトリ横断のシンボル検索ではTelescope.nvimやfzf-lua、Gitとの統合はgitsigns.nvimやfugitive、AI補完ではGitHub CopilotやCodeiumのプラグインがすでに整備されており、必要な拡張のほとんどが揃っています。サーバー作業で短時間の編集を行うときも、Neovim一つで起動が速く、設定ファイルやログの編集をストレスなく済ませられます。ターミナル前提のリモート開発、Dockerコンテナ内でのコーディング、SSHを経由したコンテナ越し開発(distrobox、devcontainer)でもGUIエディタより圧倒的に軽快に動くため、現代の開発者の道具箱で確固たる位置を占めています。

Vim・VS Code・Helixとの位置関係

Vim・VS Code・Helixとの位置関係

本家Vimとの関係は最も微妙な部分で、操作体系はほぼ同じため「両方とも快適に使える」のが普通ですが、プラグインや設定の主流はNeovim側に移りつつあります。Vim本家もv9.0でVim9 scriptを導入して言語を刷新しましたが、Luaの普及度には及ばず、新規プラグインの多くはNeovim専用で書かれる傾向が続いています。サーバーには本家Vimだけが入っていることも多いため、両方使えるようにしておくのが現実的です。

VS Codeとの比較では、Neovimは依然として「ターミナル前提・軽量・キー操作中心」という独自路線で、GUIエディタとは異なるニーズに応えています。新興のHelixはRust製で、設定不要・モーダル編集・LSP標準搭載とNeovimに似た発想を最初から実装したエディタで、Neovimユーザーから一定の関心を集めています。ZedはRust製のGUIエディタとして高速性とコラボ機能で勝負しており、Neovimとは違う方向のモダン化です。現状ではVS Codeが多数派、Neovimがハードコア層、Vim本家が保守派、Helix/Zedが新興という構図で、Vim互換と現代化のバランスを取りたい開発者にとってのベストアンサーがNeovimになっています。

まとめ

NeovimはVimの操作体系を守りつつ、Luaランタイム・LSP・Tree-sitterといった現代的な基盤を取り込んだフォーク版エディタです。Vimの資産を活かしながらVS Code級の機能を引き出せるため、ターミナル中心の開発文化を続けたい技術者にとっては「これからのVim」として最有力の選択肢になっています。

※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次