Neovim プロジェクトのフレームワーク内で、Vim コード ベースは XNUMX 年以上にわたって再加工されてきました。その結果、コードのメンテナンスを簡素化し、複数のメンテナー間で作業を分担する手段を提供し、インターフェイスをインターフェイスから分離するような変更が加えられました。基本部分 (内部に手を触れずにインターフェイスを変更できます) と新しいコンポーネントを実装します。
Neovim の作成を促した Vim の問題の 300 つは、89 万行を超える C (CXNUMX) コードで構成される、肥大化したモノリシックなコード ベースでした。 Vim コードベースの微妙な違いをすべて理解している人はほんのわずかで、すべての変更は XNUMX 人のメンテナによって制御されているため、エディタの保守と改善が困難になっています。 Neovim は、GUI をサポートするために Vim コアに組み込まれたコードの代わりに、さまざまなツールキットを使用してインターフェイスを作成できるユニバーサル レイヤーを使用することを提案しています。
Neovim のプラグインは、MessagePack 形式が使用される相互作用のために、別個のプロセスとして起動されます。 プラグインとの対話は、エディターの基本コンポーネントをブロックすることなく、非同期的に実行されます。 プラグインにアクセスするには、TCP ソケットを使用できます。 プラグインは外部システム上で実行できます。 同時に、Neovim は Vim との下位互換性を維持し、引き続き Vimscript をサポートし (代わりに Lua が提供されます)、ほとんどの標準 Vim プラグインの接続をサポートします。 Neovim の高度な機能は、Neovim 固有の API を使用して構築されたプラグインで使用できます。
現在すでに
変更点の一部
- 新しい API 関数とユーザー インターフェイス イベントの大部分が追加されました。
- Lua 言語でプラグインを開発するための新しい標準ライブラリ Nvim-Lua を追加しました。
- ユーザー インターフェイス プロトコルの開発は続けられ、個々の文字ではなく行レベルで画面上の情報が更新されます。
- 本格的なフローティング ウィンドウのサポートが追加されました。これは、任意の場所に配置、アタッチ、個々の編集バッファにリンク、およびマルチグリッド モードでグループ化できます。
- 半透明のドロップダウン メニューに「pumblend」オプションを追加しました。
出所: オープンネット.ru