Vim patchダイジェスト [2019/09]

[Vim](http://www.vim.org/)のリリースされた[patch](https://github.com/vim/vim/commits/master)の説明です。patchの内容を手作業で一つ一つ丁寧に確認して書いています。英語は忠実に訳していません。Vimを使っている人が理解しやすい表現にしています。
**新機能、大幅な仕様変更には、:four_leaf_clover:が付いています。**
([8.1.1951](https://github.com/vim/vim/commit/f1699968baf3619a4147b44c891ba4a0985e7656) ～ [8.1.2102](https://github.com/vim/vim/commit/d17a57a43330977b8f4eb36f1f7a4a66a7bb26c8))

* [8.1.2092](https://github.com/vim/vim/commit/1a613398068580ca1286ac2ed920f20c978aa662): Windows: `system()`でリダイレクトが動作しない件を修正しました。(関連patch: [8.1.2093](https://github.com/vim/vim/commit/9be0e0b9d31e42d0074527a7789836087475142a))
* [runtimeファイル更新](https://github.com/vim/vim/commit/5be4ceecea5520265066eac972460ebb1cdf05e7): [Todo](https://github.com/vim/vim/commit/5be4ceecea5520265066eac972460ebb1cdf05e7#diff-38d7929bd26d74d92ceddf984bbfc8db)更新。helpファイル更新。他。
* [8.1.2083](https://github.com/vim/vim/commit/ce0fac28977af31f1dec411d3535b4de2c3169b3): `printf()`の "%.*S" でマルチバイト文字が正しく処理されない件を修正しました。
* [8.1.2080](https://github.com/vim/vim/commit/d2842ea60bd608b7f9ec93c77d3f36a8e3bf5fe9): :four_leaf_clover:`term_setapi()`を追加しました。terminal APIのプリフィックスを変更できます。(デフォルトは`Tapi_`)
* [8.1.2071](https://github.com/vim/vim/commit/053f712ef20d143818aa07275cf1f4fa55afbf85): `'wincolor'`を設定するとテキストプロパティがハイライトを変更してしまう件を修正しました。
* [8.1.2055](https://github.com/vim/vim/commit/181d4f58cc421f2e6d3b16333d4cb70d35ad1342): :four_leaf_clover:`:profile`の出力ファイル内の関数位置のフォーマットを "Defined: `ファイル名` line `行番号`" から "Defined: `ファイル名`:`行番号`" に変更しました。これで`gf`で定義位置にジャンプできます。
* [8.1.2047](https://github.com/vim/vim/commit/0e57dd859ecb1e8a3b91509d2f4343e839340eb8): :four_leaf_clover:`state()`を追加しました。Vimの現在の状態を返します。※主にコールバック関数内でポップアップウィンドウ等のインタラクティブなUI処理が安全におこなえる状態かどうかを判断するために使います。(関連patch: [8.1.2044](https://github.com/vim/vim/commit/8aeec40207b5adcd3a155277dc4f29189343b963), [8.1.2066](https://github.com/vim/vim/commit/c2585490321854ca3df115efcf0b40986901d96c))
* [8.1.2046](https://github.com/vim/vim/commit/69198cb8c08f124729c41a4681f2d142228a9139): :four_leaf_clover:自動コマンドイベント`SafeStateAgain`を追加しました。(関連patch: [8.1.2044](https://github.com/vim/vim/commit/8aeec40207b5adcd3a155277dc4f29189343b963))
* [8.1.2044](https://github.com/vim/vim/commit/8aeec40207b5adcd3a155277dc4f29189343b963): :four_leaf_clover:自動コマンドイベント`SafeState`を追加しました。(関連patch: [8.1.2046](https://github.com/vim/vim/commit/69198cb8c08f124729c41a4681f2d142228a9139), [8.1.2047](https://github.com/vim/vim/commit/0e57dd859ecb1e8a3b91509d2f4343e839340eb8), [8.1.2048](https://github.com/vim/vim/commit/37d1807a801d5296f00b3ac85a38b26cfe6de55c), [8.1.2053](https://github.com/vim/vim/commit/d103ee78432f9036d243b18dd5aac1263d3b7dc9), [8.1.2067](https://github.com/vim/vim/commit/cadbe1b1fbdf7d7740ae617710e0f6862fdee598), [8.1.2068](https://github.com/vim/vim/commit/513537bfff59b94a26c63ab2bd458f21d4be774e), [8.1.2069](https://github.com/vim/vim/commit/0f6629a08a9ae482956f5e70452ae78be569eadf), [8.1.2074](https://github.com/vim/vim/commit/0d0c3ca007940cdb64ccbfd0e70846eedfe6a4a6), [8.1.2099](https://github.com/vim/vim/commit/b7a97ef340f03ca08df8c8e00cd5580f61aac824))
* [8.1.2035](https://github.com/vim/vim/commit/60a8de28d11595f4df0419ece8afa7d6accc9fbd): :four_leaf_clover:scriptversion 4を導入しました(`:h scriptversion-4`)。0から始まる数字は8進数として認識されません。数字を`'`で区切って見やすくできます。`str2nr()`に第3引数`{quoted}`を追加しました。(関連patch: [8.1.2036](https://github.com/vim/vim/commit/1ac90b4fa63414d56750559506a3e076df6923b0), [8.1.2038](https://github.com/vim/vim/commit/af9143833865a2d8311e57313023271720442f90), [8.1.2043](https://github.com/vim/vim/commit/ea8dcf8346f488786023fd03ec1c013cda243040))
* [8.1.2034](https://github.com/vim/vim/commit/50bf7ce0c9f8c3ede2d1a02c734beba9d5a0504e): :four_leaf_clover:GTK 3: `'guioptions'`に`d`フラグを追加しました。GUIでダークテーマが使用可能な場合はそれを使用します。
* [runtimeファイル更新](https://github.com/vim/vim/commit/8fe1000e9c3438d0ff36cf2340f0f0e48f8fb89f): [Todo](https://github.com/vim/vim/commit/8fe1000e9c3438d0ff36cf2340f0f0e48f8fb89f#diff-38d7929bd26d74d92ceddf984bbfc8db)更新。helpファイル更新。他。
* [8.1.2020](https://github.com/vim/vim/commit/d20dcb3d011da6111153109f6e46fbd5c7fe9fb6): :four_leaf_clover:`win_splitmove()`を追加しました。ウィンドウ自体の移動が比較的容易におこなえます。
* [8.1.2019](https://github.com/vim/vim/commit/410e98a70bc00ea4bed51e55a8fe20e56a72c087): :four_leaf_clover:`'cursorlineopt'`を追加しました。`'cursorline'`セット時のカーソル行ハイライトの対象を指定できます。(関連patch: [8.1.2029](https://github.com/vim/vim/commit/017ba07fa2cdc578245618717229444fd50c470d))
* [8.1.2017](https://github.com/vim/vim/commit/96e38a86a710fb6daec4550ac1667f019dc3a40e): :four_leaf_clover:コマンドラインウィンドウ(`:h cmdline-window`)絡みのウィンドウ移動でも`WinEnter`および`WinLeave`イベントをトリガーするようにしました。(コマンドラインウィンドウへの移動時は`WinEnter`, `CmdWinEnter`の順。コマンドラインウィンドウからの移動時は`CmdWinLeave`, `WinLeave`の順)
* [runtimeファイル更新](https://github.com/vim/vim/commit/30e9b3c4256710781c3bd64efb33f138e4e074b3): [Todo](https://github.com/vim/vim/commit/30e9b3c4256710781c3bd64efb33f138e4e074b3#diff-38d7929bd26d74d92ceddf984bbfc8db)更新。helpファイル更新。他。
* [8.1.2000](https://github.com/vim/vim/commit/a3a124627d2eb9d36e3dc3757429d87e041f8c0b): :four_leaf_clover:`getimstatus()`を追加しました。IMEの状態がアクティブの場合はTRUEを返します。
* [8.1.1969](https://github.com/vim/vim/commit/581ba39aefe837298a9943b04a1dab13a7ec6772): :four_leaf_clover:`popup_create()`のオプションに`filtermode`を追加しました。どのモードでフィルターが使用されるかを指定します。
* [8.1.1967](https://github.com/vim/vim/commit/8e0a8e7eb7c177807f44db6b76d8e52314248ab5): :four_leaf_clover:`line()`に任意の第2引数{winid}を追加しました。指定時はそのウィンドウの情報を返します。
* [8.1.1952](https://github.com/vim/vim/commit/5d69fdb7c4b91faf2d92b8d449cc9460f3035fb3): :four_leaf_clover:より多くの関数をメソッドとして使用できるようにしました。(関連patch: [8.1.1803](https://github.com/vim/vim/commit/ac92e25a33c37ec5becbfffeccda136c73b761ac), [8.1.1953](https://github.com/vim/vim/commit/f9f24ce7a0e5988fedf2e2ff751818f9b07510a6), [8.1.1954](https://qiita.com/h_east/items/9d14f02323cb9f205003), [8.1.1961](https://github.com/vim/vim/commit/a1449836334355b1fb00cd1bf083e7d353f6c4d7), [8.1.1982](https://github.com/vim/vim/commit/6a124e622cfe52619781c6a02119177a44d09210), [8.1.1984](https://github.com/vim/vim/commit/3f4f3d8e7e6fc0494d00cfb75669a554c8e67c8b), [8.1.1986](https://github.com/vim/vim/commit/a5a7882ea4a21944924b778208e1d54734891033), [8.1.1987](https://github.com/vim/vim/commit/a0d1fef4ebb693696464c5e22e33269f724b8e0e), [8.1.1993](https://github.com/vim/vim/commit/196b4664432f932625cfb6371dc42c24efe6c203), [8.1.1995](https://github.com/vim/vim/commit/93476fd6343ef40d088e064289cc279659d03953), [8.1.1996](https://github.com/vim/vim/commit/aad222c9c9a1e4fe6ae5a1fe95bb084619be0e65), [8.1.2004](https://github.com/vim/vim/commit/f6ed61e1489e40eada55a4f1782e1ed82bcad7d9), [8.1.2011](https://github.com/vim/vim/commit/ce90e36f5969e733a0a919f1736453332c33aad6), [8.1.2012](https://github.com/vim/vim/commit/7ee80f766130f22598c928415c92ec612a8f18cf), [8.1.2013](https://github.com/vim/vim/commit/f92e58cadb03156879e9bdbf6341bf662d9c87cc))

---
#### 凡例

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