Vim 8の新機能

Vimバージョン8.0の最初のドラフトドキュメントは 、GithubのVimリポジトリにあります 。 多数のバグが修正され、いくつかの新機能が追加されたと記載されています。

非同期I / Oチャネル


Vimは、バックグラウンドで別のプロセス(Pythonサーバーなど)とメッセージを交換する方法を認識します。 Vimが文字の入力を待っているときにメッセージが受信され、処理されます。

JSONの広範なサポートはチャネルに関連付けられており、プロセス間の通信に簡単に使用できます。これにより、任意の言語でサーバーを作成できます。 使用された関数|json_encode()| および|json_decode()|

仕事


Vimはタスクを開始し、データを交換し、停止できます。 これは、完了プロセスの開始、構文の確認などに非常に役立ちます。 通信はチャネルを介して行われます。 ジョブは、バッファまたはファイルに読み書きできます。

タイマー


タイマーも非同期です。 1回または定期的に起動し、任意の作業に対して機能を実行できます。

  let tempTimer = timer_start(4000, 'CheckTemp')    : > call CheckTemp() 

パーシャル


Vimにはすでに関数への参照であるFuncrefがあります。 パーシャルは関数も参照し、さらに引数や辞書をバインドします。 これは、チャネルおよびタイマーでのコールバックに特に役立ちます。 たとえば、前述のタイマーでは、引数を関数に渡します。

  let tempTimer = timer_start(4000, function('CheckTemp', ['out']))    : > call CheckTemp('out') 

パッケージ


ますます多くのプラグインがあります。 プラグインのコレクションをより適切に管理するために、パッケージのサポートが追加されました。 これは、1つまたは複数のプラグインを取得してディレクトリに配置し、場合によっては新しいバージョンにアップグレードする便利な方法です。 Vimはそれらを自動的に、またはオンデマンドでのみダウンロードします。

新しいテスト


これはVim開発者向けです。 これまでのところ、Vimのテストを書くことは簡単ではありませんでした。 Vim 8では、テストを実行するためのassert関数とフレームワークが導入されました。 テストの記述と更新がはるかに簡単になりました。

次の機能が追加されました。
|assert_equal()|
|assert_notequal()|
|assert_exception()|
|assert_fails()|
|assert_false()|
|assert_match()|
|assert_notmatch()|
|assert_true()|
|alloc_fail()|
|disable_char_avail_for_testing()|


ウィンドウID


以前は、その番号でのみ渡されるウィンドウへのアクセス。 そして、この番号は開いたり閉じたり移動したりするたびに変わります。 各ウィンドウは一意のIDを持つようになったため、ウィンドウを簡単に見つけることができます。

行にインデントを追加する


インデント値を変更せずにインデントを挿入するための'breakindent'オプションが登場しました。

Direct-Xのサポート(Windows用)


'renderoptions'オプションを使用すると、WindowsでDirect-X(DirectWrite)モードに切り替えることができます。

GTK + 3サポート


GTK + 2はすでに過去のものであり、GTK + 3の時間です。サポートはすでに統合されており、GTK + 2とほぼ同じように機能します。

スクリプトの機能強化


次のスクリプトタイプが追加されました。

|Special| |v:false|, |v:true|, |v:none| and |v:null|
|Channel| /
|Job|


これらの新しいタイプをサポートするために、多くの機能とコマンドが追加されました。

言及された他の改善には、blowfishの代わりにblowfish2暗号化の追加が含まれます。

Vim 8.0には「互換性のない」変更が1つあります-これはMS-DOSサポートの中止です。

Source: https://habr.com/ru/post/J281521/


All Articles