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サポートの中止です。



All Articles