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