Vim 9.0 patchダイジェスト (2023/09)

[Vim](http://www.vim.org/)のリリースされた[patch](https://github.com/vim/vim/commits/master)の説明です。
([9.0.1834](https://github.com/vim/vim/commit/f6fc255e8d9c46a0e51e03f16a508833d309dee6) ～ [9.0.1966](https://github.com/vim/vim/commit/e379e21ddc2dc12abea9dcfd0708e27788bb568c))
**新機能、大幅な仕様変更には、:four_leaf_clover:が付いています。**
runtimeファイルも直接commitされるようになりました。ただ、数が多いので基本的にはここでは取り扱わないことにします。

* [9.0.1962](https://github.com/vim/vim/commit/e085dfda5d8dde064b0332464040959479696d1c): :four_leaf_clover: Linux: 拡張属性を取得して新しいファイルにコピーするためのサポートを追加しました。サポートの有無は`has("xattr")`で確認できます。(関連patch: [9.0.1964](https://github.com/vim/vim/commit/a4dfbfed89e26a766e30cca62c18e710eec81c3f), [9.0.1967](https://github.com/vim/vim/commit/7ece036d72cf639b05d3936183220bec7179bf63), [9.0.1975](https://github.com/vim/vim/commit/993b17569b5acffe2d8941d1709a55da4e439755), [9.0.2034](https://github.com/vim/vim/commit/5a679b2263f597950f99c60a99d4d1a192e9f639))
* [9.0.1958](https://github.com/vim/vim/commit/900894b09a95398dfc75599e9f0aa2ea25723384): :four_leaf_clover: 文字列の値を持つオプション('set')の値補完をおこなえるようにしました。(関連patch: [9.0.1961](https://github.com/vim/vim/commit/1f025b01e29be6fce907d0379602b45031d6998f), [9.0.1968](https://github.com/vim/vim/commit/6ee7b521fa7531ef356ececc8be7575c3800f872), [9.0.1991](https://github.com/vim/vim/commit/290b887e8cc2c0d3dfc7f315b2052472c7c589cc), [9.0.2009](https://github.com/vim/vim/commit/54844857fd6933fa4f6678e47610c4b9c9f7a091), [9.0.2025](https://github.com/vim/vim/commit/989426be6e9ae23d2413943890206cbe15d9df38))
* [9.0.1957](https://github.com/vim/vim/commit/3695d0e41ba26db074dd5680564a6f87d522fb61): :four_leaf_clover: `'keyprotocol'`が変更された時に、termcapオプションも変更するようにしました。
* [9.0.1948](https://github.com/vim/vim/commit/db38552dcdc7460459df8bf5cf02666256045308): :four_leaf_clover: Vim9: クラスメソッドの仮引数にオブジェクトメンバ変数を指定できるメカニズムをコンストラクタのみに制限しました。
* [9.0.1946](https://github.com/vim/vim/commit/9eb1ce531527a7177d16373b0f8689bbcd3d5f73): :four_leaf_clover: Unix: `'shell'` が`bash`の場合は、内部的に `shopt -s globstar`を実行して、`**` パターンを使用した特定のディレクトリの下での再帰的なマッチが正しく行われるようにしました。(関連patch: [9.0.1972](https://github.com/vim/vim/commit/4a1ad5556423dca5f5b7ee39f143579e67569ae1))
* [9.0.1945](https://github.com/vim/vim/commit/2dede3dbfa3cb52f464f942d46d3ec0f66e3e354): :four_leaf_clover: Vim9: インターフェイスに読み込み専用オブジェクト変数をサポートしました。
* [9.0.1921](https://github.com/vim/vim/commit/87018255e3ad0f4dfa03e20318836d24af721caf): :four_leaf_clover: `'jumpoptions'`を追加しました。値が`stack`時はジャンプリストがタグスタックのような動作になります。
* [9.0.1909](https://github.com/vim/vim/commit/00cd18222ee1551c65228e9556c158624507fc7a): Vim9: クラスから他クラスのメソッド呼び出しの問題、および読み込み専用オブジェクト変数がクラス外で変更できてしまう件等を修正しました。(関連patch: [9.0.1914](https://github.com/vim/vim/commit/1db151436541a3e64cdd5e3d9eb3ace1ce1e1ad0))
* [9.0.1906](https://github.com/vim/vim/commit/92d9ee5f4ca0d2de04c39afbafc7609da43fb2e9): :four_leaf_clover: Vim9: 新しいインターフェイス仕様に更新しました。(インターフェースのクラスメソッドおよびクラス変数のサポートを禁止したり、他のインターフェイスを `extends` で拡張できるようにしたり、...)。
* [9.0.1885](https://github.com/vim/vim/commit/7bcd25cad3e9d5c9e25c7ae2bde67285c26f73cd): :four_leaf_clover: Vim9: 抽象メソッドをサポートしました。(`:h abstract-method`)
* [9.0.1855](https://github.com/vim/vim/commit/71ebf3bacaa22c841d9a8cb050c52fb21ac0970a): :four_leaf_clover: `mode()`が端末ジョブモード経由のコマンドライン編集モード時に `c` を返すようにしました。(`mode(1)`の場合は `ct`) 
* [9.0.1838](https://github.com/vim/vim/commit/3775f777a6add2a8d5060b40414e9c53062c8cd9): :four_leaf_clover: Vim9: def関数からclassメンバ変数を変更できるようにしました。

---
#### 凡例

|表記|意味|
|:------|:------|
|: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)を参照。