Vim patchダイジェスト (2022/04)

[Vim](http://www.vim.org/)のリリースされた[patch](https://github.com/vim/vim/commits/master)の説明です。
([8.2.4660](https://github.com/vim/vim/commit/782c6744b49b30d9460ed00d4773666e42e07163) ～ [8.2.4851](https://github.com/vim/vim/commit/b4011afe53ce2d065e49718b8c5b9974b7022f92))
**新機能、大幅な仕様変更には、:four_leaf_clover:が付いています。**
Vim9 scriptの実装/仕様変更/不具合修正も頻繁におこなわれています。

* [8.2.4838](https://github.com/vim/vim/commit/dca1d40cd0f2af0755519e7028378bd3c8fefd31): :four_leaf_clover:`isabsolutepath()`を追加しました。指定された{path}が絶対パスの場合に TRUE を返します。
* [runtimeファイル更新](https://github.com/vim/vim/commit/ce001a337e28fa368f40ac6422835d730fb8ebb1): [Todo](https://github.com/vim/vim/commit/ce001a337e28fa368f40ac6422835d730fb8ebb1#diff-fb7eed53e3f2993f9d82c748206eaca82fd1d054a417c6de477bb54373d85643)更新。helpファイル更新。他。
* [8.2.4825](https://github.com/vim/vim/commit/09661203ecefbee6a6f09438afcff1843e9dbfb4): :four_leaf_clover:`maplist()`を追加しました(`getmappings()`からリネームしました)。すべてのマッピングをリストで取得します。第1引数 {abbr} を追加しました。TRUE指定時はマッピングの代わりに短縮入力(abbreviations)を返します。(関連patch: [8.2.4820](https://github.com/vim/vim/commit/659c240cf769925ff432b88df8719e7ace4629b0))
* [runtimeファイル更新](https://github.com/vim/vim/commit/75ab590f8504a8912ca0b8c58f6b897bb7a34f07): [Todo](https://github.com/vim/vim/commit/75ab590f8504a8912ca0b8c58f6b897bb7a34f07#diff-fb7eed53e3f2993f9d82c748206eaca82fd1d054a417c6de477bb54373d85643)更新。helpファイル更新。他。
* [8.2.4770](https://github.com/vim/vim/commit/efbfa867a146fcd93fdec2435597aa4ae7f1325c): :four_leaf_clover:ヒアドキュメント(`:h :let-heredoc`)に`eval`オプションを追加しました。指定時は \`={expr}\` を評価して結果に置き換えられます。(関連patch: [8.2.4804](https://github.com/vim/vim/commit/1fc6ea9bf3548b578676331f5eac1f7e0611c268))
* [8.2.4760](https://github.com/vim/vim/commit/9029a6e9931eede1d44f613687a2c01b9fe514ec): :four_leaf_clover:`matchfuzzy()`の第3引数{dict}のエントリに`limit`を追加しました。指定時は第1引数{list}に返すリストの数を制限できます。(無指定 or 0指定時は制限なし)
* [8.2.4758](https://github.com/vim/vim/commit/3b470ae88f034d3741832ab1cc51a5bb8edaf4c6): :four_leaf_clover:チャネルのモードが "lsp" で第3引数{options}のエントリ`"callback"`指定時は、`ch_sendexpr()`がエントリ`"id"`を含む辞書を返すようにしました。(リクエストメッセージID。リクエストのキャンセル時に使用します) (関連patch: [8.2.4761](https://github.com/vim/vim/commit/e0805b849ce60f65149903b63584d49bf81f975e))
* [8.2.4742](https://github.com/vim/vim/commit/c9a9a0ac1ec3b985d38c01ddf9f0ba2f15386f34): :four_leaf_clover:Vimの起動オプションに`--log {filename}`を追加しました。起動時の非常に早い段階のログも含めてファイルに出力されます。
* [8.2.4730](https://github.com/vim/vim/commit/e08fde007308fffec818b4ad6eccf573f54bed5b): :four_leaf_clover:Windows: gVIMで`CTRL-/`が扱えない件を修正しました。
* [8.2.4726](https://github.com/vim/vim/commit/6013d0045dec7ca7c0068fbe186c42d754a7368b): :four_leaf_clover:`expand('<script>')`をサポートしました。スクリプトファイル名に展開されます。
* [8.2.4724](https://github.com/vim/vim/commit/a43993897aa372159f682df37562f159994dc85c): :four_leaf_clover:ハイライトグループ`CurSearch`を追加しました。`'hlsearch'`がオン時、最終検索パターンがカーソル下にある場合のハイライトを設定できます。(関連patch: [8.2.4759](https://github.com/vim/vim/commit/693ccd11606b59eb0f81c6c1948679e61ada4022), [8.2.4805](https://github.com/vim/vim/commit/9b36750640e8e89f18afa1446ed80fdbdf0fcac0))
* [8.2.4717](https://github.com/vim/vim/commit/a016eeba7a5777ba1f2ec2dbcda7c96823bf9ab1): :four_leaf_clover:`TextYankPost`イベントトリガー時に`v:event`のエントリ`inclusive`をセットするようにしました。値がTRUE時はヤンクが inclusive でFALSE時は exclusive です。
* [runtimeファイル更新](https://github.com/vim/vim/commit/cbaff5e06ec525d31dc44093125c42029e01d508): [Todo](https://github.com/vim/vim/commit/cbaff5e06ec525d31dc44093125c42029e01d508#diff-fb7eed53e3f2993f9d82c748206eaca82fd1d054a417c6de477bb54373d85643)更新。helpファイル更新。他。
* [8.2.4713](https://github.com/vim/vim/commit/0937182d49fa8db50cec42785f22f1031760a0bd): :four_leaf_clover:`WinScrolled`イベントを追加しました。Vimウィンドウをスクロールまたはリサイズした場合にトリガーされます。
* [8.2.4712](https://github.com/vim/vim/commit/18ee0f603ebd3c091f6d2ab88e652fda32821048): :four_leaf_clover:`:profile`に`stop`オプションと`dump`オプションを追加しました。`stop`はプロファイル情報をログファイルに書き込んでプロファイリングを停止します。`dump`はプロファイルの現在の状態をログファイルに書き込んで、プロファイリングを継続します。
* [8.2.4702](https://github.com/vim/vim/commit/3506cf34c17c5eae6c2d1317db1fcd5a8493c288): :four_leaf_clover:`'cinscopedecls'`を追加しました。C++のスコープ宣言として認識されるキーワード文字列群を設定します。C言語系のインデント動作に関連します。(`:h cino-g`) (関連patch: [8.2.4703](https://github.com/vim/vim/commit/cb49a1d934d38cbc0d445af59b71ffe45cbcae75))
* [8.2.4695](https://github.com/vim/vim/commit/beb0ef1ab2dbd9760345e3e03647b93914591d56): `json_encode()`の処理を高速化しました。
* [8.2.4684](https://github.com/vim/vim/commit/cc766a85f460ebb7f8c915508447548b5f5b99bc): :four_leaf_clover:チャネルがUNIXドメインソケットをサポートしました。(`:h channel-address`) (関連patch: [8.2.4690](https://github.com/vim/vim/commit/1b76a8dfe21903d6f3ff190e84f3690ee7a73643))
* [8.2.4679](https://github.com/vim/vim/commit/2b74b6805b5c8c4836b66df5d949f5ff6a77f8c7): :four_leaf_clover:`expandcmd()`に第2引数 {options} を追加しました。辞書{options}のエントリ`errmsg`が真の場合、エラーが発生した時はエラーメッセージが表示されます。
* [8.2.4674](https://github.com/vim/vim/commit/c4cb544cd5beaa864b3893e4b8d0085393c7dbce): :four_leaf_clover:GUI: `'mousemoveevent'`を追加しました。このオプションがオンになっている場合のみ、特殊キー名 `"<MouseMove>"`でマウス移動をハンドルできます。

---
#### 凡例

|表記|意味|
|:------|:------|
|:four_leaf_clover:|新機能、大幅な仕様変更|
|:alien:|Vim開発者向けの追加、変更|
|`'hoge'`|オプション (`:h options`参照)|
|`:hoge`|Exコマンド (`:h :index`参照)|
|`hoge()`|組み込み関数 (`:h functions`参照)|
|`v:hoge`|Vim定義済変数 (`:h v:`参照)|
|`+hoge`|feature (`:h +feature-list`参照)|

---
#### 方針
[こちら](http://qiita.com/h_east/items/23cd0d10932505072e6b#%E6%96%B9%E9%87%9D)を参照。