Vim エディターの最新バージョンである Neovim 0.7.0 のリリース

Neovim 0.7.0 がリリースされました。これは、拡張性と柔軟性の向上に重点を置いた Vim エディターのフォークです。 プロジェクトは 2.0 年以上にわたって Vim コード ベースを作り直してきました。その結果、コードのメンテナンスを簡素化し、複数のメンテナー間で作業を分担する手段を提供し、インターフェースをベース部分から分離する (インターフェースは内部に手を加えずに変更)、プラグインに基づいて新しい拡張可能なアーキテクチャを実装します。 プロジェクトのオリジナルの開発部分は Apache XNUMX ライセンスに基づいて配布され、基本部分は Vim ライセンスに基づいて配布されます。 既製のアセンブリは、Linux (appimage)、Windows、macOS 用に用意されています。

Neovim の作成を促した Vim の問題の 300 つは、89 万行を超える C (CXNUMX) コードで構成される、肥大化したモノリシックなコード ベースでした。 Vim コードベースの微妙な違いをすべて理解している人はほんのわずかで、すべての変更は XNUMX 人のメンテナによって制御されているため、エディタの保守と改善が困難になっています。 Neovim は、GUI をサポートするために Vim コアに組み込まれたコードの代わりに、さまざまなツールキットを使用してインターフェイスを作成できるユニバーサル レイヤーを使用することを提案しています。

Neovim のプラグインは、MessagePack 形式が使用される相互作用のために、別個のプロセスとして起動されます。 プラグインとの対話は、エディターの基本コンポーネントをブロックすることなく、非同期的に実行されます。 プラグインにアクセスするには、TCP ソケットを使用できます。 プラグインは外部システム上で実行できます。 同時に、Neovim は Vim との下位互換性を維持し、引き続き Vimscript をサポートし (代わりに Lua が提供されます)、ほとんどの標準 Vim プラグインの接続をサポートします。 Neovim の高度な機能は、Neovim 固有の API を使用して構築されたプラグインで使用できます。

現在、約 130 個の具体的なプラグインがすでに用意されており、さまざまなプログラミング言語 (C++、Clojure、Perl、Python、Go、Java、Lisp、Lua、Ruby) やフレームワーク (Qt、 ncurses、Node .js、Electron、GTK)。 いくつかのユーザー インターフェイス オプションが開発中です。 GUI アドオンはプラグインによく似ていますが、プラグインとは異なり、プラグインは Neovim 関数の呼び出しを開始しますが、プラグインは Neovim 内から呼び出されます。

新しいバージョンでは、リモート作業の初期サポートが提供され、サーバー上で Neovim を実行し、別の ui_client を使用してクライアント システムからサーバーに接続できるようになります。 その他の変更点には、Python 2 のサポートが中止されたこと、キーマップでの Lua 関数の使用が許可されたこと、API に新しいコマンドが追加されたこと、プラグインの開発と構成管理に Lua 言語を使用する機能が大幅に拡張されたことが含まれます。コードの問題を診断するツールが改善され、グローバル ステータス バーのサポートが追加され、パフォーマンスの最適化が実行されました。 組み込み LSP クライアント (言語サーバー プロトコル) の機能が拡張され、分析ロジックとコード補完を外部サーバーに転送するために使用できるようになりました。

出所: オープンネット.ru

コメントを追加します