VimとNeovim: どちらが優れていて、どちらを使用すべきか?

コードの作成、スクリプトの作成、または単に設定ファイルの管理を行っている場合、エディタの選択は生産性と楽しさに大きな影響を与える可能性があります。Linuxの美しさは、Vimやその強化版であるNeovimを含む、選択できる複数のテキストエディタのオプションがあることです。VimとNeovimの間の議論は、Linuxユーザーの間で進化し続けており、両側に強い意見があります。このガイドでは、Vim、Neovim、それらの機能、およびそれらの間の主な違いを探ります。
Vimとは何か?
Vim、またはVi IMprovedは、UNIXオペレーティングシステムの基本的なツールであった古いテキストエディタviのより高度で機能豊富なバージョンです。Unixシステム、Windows、macOSなど、複数のプラットフォームで動作します。macOSまたは任意のLinuxディストリビューションを使用している場合、Vimがすでにインストールされていて、使用できる状態である可能性が非常に高いです。
インストールされていない場合は、デフォルトのパッケージマネージャを使用して簡単にインストールできます。たとえば、Ubuntuでは次のようにします:
sudo apt install vimインストール後、ターミナルでvimと入力するだけで起動します。

Vimは、ファイルをナビゲートし、編集を行い、作業を保存し、マウスを使用せずに多くの他のアクションを実行できるモーダル編集環境を提供します。さらに、設定ファイルを通じて、ワークフローに完璧に合うようにその動作や外観のほぼすべての側面を調整できます。唯一の問題は、新しいユーザーには使いにくい場合があり、Vimからの退出に問題を抱える人もいることです。
Neovimとは何か?
Neovimは、viとVimの遺産に基づいています。2014年にVimのフォークとして始まり、Vimのアーキテクチャの限界を克服することを目指しながら、多くのユーザーが愛するモーダル編集の哲学を保持しています。NeovimはVimのドロップイン置き換えとして機能し、既存の「.vimrc」設定ファイルを引き続き使用できます。
基本的な使用感は、NeovimはVimとほぼ同じです。Neovimを際立たせるのは、インターフェースをフリーズさせることなくバックグラウンドで操作を実行できる非同期処理などの現代的な機能のサポートです。他の機能には、シェルコマンドをエディタを離れずに実行できる組み込みのターミナルエミュレーションが含まれます。
Vimとは異なり、Neovimはデフォルトでインストールされていません。ただし、Neovimのインストールは簡単です。たとえば、Ubuntuでは次のコマンドを実行します:
sudo apt install neovim
インストール後、nvimコマンドでNeovimを起動します。

Neovimには、始めるための組み込みチュートリアルが含まれています。Neovimを起動し、:Tutorと入力して基本を学びます(プログラムの終了方法を含む)。
VimとNeovimの主な違い
VimとNeovimは似たように機能しますが、Neovimは全体的に洗練された体験を提供します。
Neovimの主要な改善点の1つは、そのアーキテクチャにあります。より保守可能でモジュール化されるように設計されており、貢献の障壁を下げ、より迅速に進化できるようにしています。このアーキテクチャの変化は、パフォーマンスと信頼性の向上にもつながります。Vimは堅牢なエディタであり続けますが、Neovimの設計は将来にわたってより耐久性があり、開発者に優しいものにしています。

また、Neovimの非同期アーキテクチャのおかげで、タスクはエディタをロックすることなくバックグラウンドで実行できます。自動補完の提案を受けたり、リンターを実行したり、大規模なプロジェクトを読み込んだりしても、Neovimはスムーズに動作し続けます。
NeovimはVimプラグインをサポートするだけでなく、それらを改善します。VimのプラグインシステムはVimscriptに大きく依存しており、制約があり、扱いにくい場合があります。Neovimはこれを拡張し、現代的で軽量なスクリプト言語であるLuaをサポートします。telescope.nvimやnvim-treesitterのようなツールは、Vimが提供するものよりもはるかに優れた検索と構文ハイライトを提供します。
Neovimは設定ファイルもより標準化された方法で処理します。Vimが設定やプラグインをハードコーディングされた「~/.vim」ディレクトリに保存するのに対し、NeovimはXDGベースディレクトリ仕様に従い、「~/.config/nvim」にファイルを配置します。この構造はファイルの整理をよりクリーンで柔軟に保ちます。この違いにもかかわらず、NeovimはVimの設定ファイルと互換性があります。
Vimと同様に、NeovimはターミナルベースのUIを提供しますが、組み込みのターミナルエミュレーターの便利さを追加しています。ターミナルを超えて、NeovimはOni、Goneovim、VimRなどの現代的なグラフィカルユーザーインターフェースをサポートしています。
VimとNeovimの長所と短所
それぞれのエディタの長所と短所について話し合い、どちらがあなたのニーズに合っているかをよりよく判断できるようにしましょう。
Vimの長所:
- 大多数のLinuxベースのシステムにプリインストールされている
- 熟成された、十分にテストされたコードベースによる卓越した安定性
- 幅広い採用とコミュニティサポート
- 限られたリソースや帯域幅のあるシステムでのパフォーマンスが良好
Vimの短所:
- 初期の学習曲線はかなり急である可能性がある
- プラグインの管理がより複雑になる可能性がある
- 特定の現代的な機能の統合がより困難である
- 言語サーバープロトコル(LSP)の組み込みサポートがない
Neovimの長所:
- パフォーマンスが向上し、より応答性の高いユーザー体験を提供
- 言語サーバープロトコルの組み込みサポート
- Luaスクリプトにより、プラグインの開発と設定がより効率的に行える
- プラグイン管理が一般的に簡単でスムーズ
- より合理的でユーザーフレンドリーなデフォルト設定が付属
- 組み込みのターミナルエミュレーターが含まれている
Neovimの短所:
- ほとんどのシステムにデフォルトでインストールされていない
- Vim特有の機能に依存する一部のVimプラグインは調整が必要な場合がある
- 古いVimプラグインは修正なしでは完全には機能しない可能性がある
- Vimよりもわずかに多くのリソースを使用する
- 設定にLuaを使用するには新しい言語を学ぶ必要がある
どちらを使用すべきか: Neovim vs. Vim?
VimとNeovimの選択は、あなたのワークフロー、快適さ、エディタに必要なものによって異なります。新しいソフトウェアをインストールできない異なるシステムでよく作業する場合は、Vimを選んでください。ほぼどこでも利用可能です。また、安定した軽量エディタを望む場合や、リソースが限られた環境でうまく機能するエディタを探している場合にも最適です。また、すでにVimの設定を何年もかけて微調整している場合は、そのまま使用してください。
一方、現代的な編集体験を望む場合はNeovimを選んでください。より良いデフォルト、アクティブなコミュニティサポート、組み込みのLSPやLuaスクリプトなどの機能があります。IDEのような機能を望む開発者に最適です。モーダル編集に不慣れな場合でも、Neovimのスマートなデフォルトにより学習曲線が容易になります。
最後の考え
VimとNeovimは同じコア目的を果たしますが、Neovimはより現代的で能力のある編集体験を提供します。Vimの基盤の上に構築され、パフォーマンスの向上、プラグイン開発の容易さ、LSP統合、UIサポートの強化を実現しています。これらの改善により、Neovimはより強力で拡張可能なエディタを求める開発者にとって強力な代替手段となります。
多くの開発者は両方を使用しています - Neovimはローカル開発作業に、Vimはリモートサーバーでのクイック編集に使用されます。個人的には、両方を試しましたが、その信頼性と複数のLinuxディストリビューションでの利用可能性からVimに落ち着きました。
最終的に、両者はほとんど同じスキルとキー操作を共有しているため、一方を学ぶことで他方にも流暢になることができます。これらは単なる2つのエディタではなく、Linuxの特別な点は、すべてのユーザーの好みに合ったさまざまなエディタオプションが利用できることです。