どんなソフトか
Vim と、その派生である Neovim は、キーボード中心で操作する高速なモーダルテキストエディタ です。ターミナル(黒い画面)の中で動かせるため、サーバー上での編集や、マウスを使わない素早い作業に向いています。
横にスクロール
エディタのバッファ、言語サーバー、ビルド・テスト・デバッガ・版管理は別の責任です。補完が成功しても実行物の正しさは保証されないため、外部ツールを必要な目的ごとに起動し、同じコマンドを端末やCIでも再現します。
Vim は 1991 年に Bram Moolenaar 氏が公開して以来、Unix 系で定番のエディタとして広く使われてきました。多くの Linux やフリーソフトに採用された「vi」という古典的エディタの操作体系を受け継ぎ、それを大幅に強化した「vi improved(改良版 vi)」が名前の由来です。Neovim は 2014 年に始まったコミュニティ主導の派生プロジェクトで、肥大化した Vim の内部を整理し、拡張・設定をしやすくすることを目的にしています。基本的なキー操作はおおむね共通しているため、片方を覚えればもう片方も使えます。
主な特徴
モードによる操作 : 文字を入力する「挿入モード」と、移動・編集を指示する「ノーマルモード」、範囲を選ぶ「ビジュアルモード」などを切り替えて使う独特の操作体系を持つ。
編集操作の文法 : 「動作(オペレータ)+対象(モーション)」を組み合わせる文法があり、d(削除)+w(単語)で dw、c(変更)+i((括弧の内側)で ci( のように、少ないキーで広い範囲の編集を表現できる。
キーボードで完結 : カーソル移動から検索・置換・コピーまで、ホームポジションから手を離さずに行える。
軽量で動作が速い : 最小構成なら起動も動作も軽く、リモートのサーバー上や SSH 越しでも快適に使える。
高い拡張性 : 設定ファイルやプラグインで、補完・ファイル検索・Git 連携などの機能を足していける。Vim は独自言語 Vim script、Neovim は加えて Lua で設定・拡張できる。
どこにでもある : ほとんどの Unix 系 OS に vi 互換エディタが標準搭載されており、緊急時の最低限の編集手段として頼りになる。
仕組み・設計思想
Vim 系エディタの核心は「編集を言語として表現する 」という発想です。一般的なエディタが「カーソルを動かして文字を打つ」ことを基本とするのに対し、Vim はキーの組み合わせを文法として解釈します。たとえば 2dd は「2 行削除」、ggVG は「先頭から末尾まで選択」を意味し、慣れると思考とほぼ同じ速度で編集を指示できます。マウスや矢印キーに頼らずホームポジションを保てるのは、この設計の直接的な結果です。
内部的には、テキストはメモリ上のバッファとして保持され、画面に映る「ウィンドウ」や作業単位の「タブ」と分離されています。1 つのファイルを複数ウィンドウで開いたり、複数ファイルをバッファとして並行編集したりできるのはこのためです。
両者の最大の違いは拡張アーキテクチャです。Neovim は外部プロセスと通信する RPC ベースの API を備え、補完エンジンや言語サーバーなどを別プロセスとして非同期に動かせます。これにより重い処理で編集がカクつきにくく、近年は LSP(Language Server Protocol) や Tree-sitter(高速な構文解析) をエディタ本体に内蔵しています。一方の Vim も Vim script の高速化や非同期ジョブ機能を取り入れており、両者は互いに影響し合いながら進化しています。
Vim は ~/.vimrc、Neovim は ~/.config/nvim/(init.vim または init.lua)を設定の起点にします。Neovim を Lua で構成すると、設定そのものをプログラムとして書けるため、大規模なカスタマイズや「自分専用 IDE」化がしやすくなります。
主なユースケース・向き不向き
サーバー上で直接ファイルを編集する人、SSH 接続先での設定ファイル修正やログ確認を頻繁に行うインフラ・運用担当者には、ほぼ必須級の道具です。ローカルでも、編集速度を突き詰めたい開発者やライターが日常エディタとして使い込みます。GUI を立ち上げず軽量に動くため、非力なマシンや遠隔環境でも快適です。
向かないのは、デバッガの GUI や視覚的な操作を重視する場面、チームで設定を素早く揃えたい初学者中心のプロジェクトなどです。学習コストが高く、戦力になるまで時間がかかるため、「すぐ書き始めたい」用途には別の選択肢が無難なこともあります。
他のエディタとの比較
もっとも比較されるのは VS Code です。汎用性と導入のしやすさを取るか、編集速度と軽さを取るかが選択の軸になります。
観点 Vim / Neovim VS Code 操作の中心 キーボードのモーダル操作 マウス+キーボードの GUI 学習コスト 高い(慣れるまで時間が必要) 低い(直感的に始められる) 動作の軽さ 非常に軽くリモートでも快適 電子アプリで比較的重い 拡張の方法 プラグイン(Vim script/Lua) 拡張機能マーケットプレース 主な強み 編集速度とどこでも動く可搬性 豊富な拡張と統合 GUI 環境
なお両者は排他ではなく、VS Code に Vim キーバインドの拡張を入れて「VS Code の上で Vim 操作」をする使い方も一般的です。Vim 流の編集が体に染みついた人が、GUI の利便性も手放したくない場合の折衷案になります。
ライセンス・エコシステム
どちらもオープンソースで無料 です。Vim はチャリティーウェアの性格を持つ独自ライセンス(GPL 互換)で配布され、Neovim は Apache License 2.0 を中心としたライセンスで開発されています。商用利用も含めて費用はかかりません。
プラグインのエコシステムは活発で、ファイル検索(fuzzy finder)、ファイラ、Git 連携、補完、ステータスライン装飾などが揃っています。Neovim ではプラグインマネージャ(lazy.nvim など)で導入を自動化でき、LSP や Tree-sitter と組み合わせた「IDE 風の構成」を一から組み上げる文化が根付いています。すぐ使える設定一式を配布する「ディストリビューション」も存在し、ゼロから設定する手間を省けます。
導入・運用上の注意点 / 評価
モード切り替えなど独特の操作のため、初めは戸惑いやすいエディタです。挿入モードとノーマルモードの切り替え、保存と終了(:wq で保存して終了、:q! で破棄して終了)といった基本操作を先に押さえてから使い始めると、つまずきを減らせます。
最初の数日は素のエディタより遅く感じるのが普通で、効果が出るのは操作が指に馴染んでからです。本体付属のチュートリアル vimtutor を一度通すと、最低限の地図を持って練習に入れます。
設定を盛り込みすぎると起動が遅くなったり、プラグイン同士が競合したりするため、必要なものから少しずつ加えるのが堅実です。Neovim を Lua で本格構成する場合は設定が一種のコードベースになるので、バージョン管理(dotfiles の Git 管理)と組み合わせて育てていくと、環境を再現しやすく長く使えます。