Vim patchダイジェスト [2020/04]

[Vim](http://www.vim.org/)のリリースされた[patch](https://github.com/vim/vim/commits/master)の説明です。patchの内容を手作業で一つ一つ丁寧に確認して書いています。英語は忠実に訳していません。Vimを使っている人が理解しやすい表現にしています。
**新機能、大幅な仕様変更には、:four_leaf_clover:が付いています。**
また、Vim9 scriptの実装と不具合修正も頻繁におこなわれています。
([8.2.0489](https://github.com/vim/vim/commit/25b70c780a7e6063544e7f93c368fe403076f34e) ～ [8.2.0671](https://github.com/vim/vim/commit/9e175141f3437627c314257ebf894c29c71a9ded))

* [8.2.0670](https://github.com/vim/vim/commit/6adb9ea0a6ca01414f4b591f379b0f829a8273c0): :four_leaf_clover:`'completefunc'`の関数内でのカレントウィンドウの移動を可能にしました。
* [8.2.0650](https://github.com/vim/vim/commit/4c17ad94ecb0a0fb26d6fface2614bc5172dea18): :four_leaf_clover:Vim9: スクリプトローカルな関数の削除を禁止しました。スクリプトの再読み込み(`:source`)時にVim内部で関数を削除します。(関連patch: [8.2.0729](https://github.com/vim/vim/commit/89483d40438830fb9e74a5ec6c92d2470b05e4c2))
* [8.2.0646](https://github.com/vim/vim/commit/759d81549c1340185f0d92524c563bb37697ea88): GUIの場合は`t_Co`設定時に環境変数COLORSを参照しないようにしました。(関連patch: [8.2.0554](https://github.com/vim/vim/commit/acc770a10f65107131473ea2ab4ae5d429dfe172))
* [8.2.0643](https://github.com/vim/vim/commit/e297802d6ddbebbf36f9a2d01127c034fab88b3b): :four_leaf_clover:端末のANSIカラー No.3の実際の描画色が "dark yellow" ではなく "brown" になっていた件を修正しました。
* [8.2.0626](https://github.com/vim/vim/commit/f93c7fea084a99848d512ff2732041d4b41d93c8): :four_leaf_clover:Vim9: `:echomsg`と`:echoerr`を実装しました。
* [runtimeファイル更新](https://github.com/vim/vim/commit/2c7f8c574f1f8723d59adca3fec8fb89c41cf8c9): [Todo](https://github.com/vim/vim/commit/2c7f8c574f1f8723d59adca3fec8fb89c41cf8c9#diff-38d7929bd26d74d92ceddf984bbfc8db)更新。helpファイル更新。他。
* [8.2.0604](https://github.com/vim/vim/commit/eb58a2465825c258beafae96240824923f73779f): :four_leaf_clover:端末ウィンドウでは`:startinsert`を無視するようにしました。
* [8.2.0600](https://github.com/vim/vim/commit/d3aac2917db38f8590648ee76eebfa178fc4c069): Vim9: 関数(`:def`)で`b:`, `w:`および`t:`な変数にアクセスできない件を修正しました。
* [8.2.0590](https://github.com/vim/vim/commit/aa0489e12d227d24752cf16e4e97058ac32edcc1): :four_leaf_clover:`'backspace'`に`nostop`を追加しました。`CTRL-W`と`CTRL-U`が挿入開始位置で止まらない以外は`start`と同じです。
* [8.2.0588](https://github.com/vim/vim/commit/314ca7cbb4b5a26959abb641a5aa265bee47abe5): :four_leaf_clover:端末が[PuTTY](https://www.putty.org/)の場合の`'ttymouse'`のデフォルト値を`sgr`にしました。
* [8.2.0578](https://github.com/vim/vim/commit/6c2b7b8055b96463f78abb70f58c4c6d6d4b9d55): :four_leaf_clover:if_lua, if_mzsch, if_perl, if_python, if_python3, if_ruby, if_tcl: 各I/F言語のヒアドキュメントに`trim`オプションを追加しました。インデントを取り除きます。(Vim scriptでは[8.1.1585](https://github.com/vim/vim/commit/e7eb92708ec2092a2fc11e78703b5dcf83844412)で対応したのですが、各I/F言語の対応ができていなかった) (関連patch: [8.2.0672](https://github.com/vim/vim/commit/6ab0953fefe31fef91e40752a675ceb60fc2fe03))
* [8.2.0570](https://github.com/vim/vim/commit/6e949784be29bfaea6e49a9d8231481eae10fab6): :four_leaf_clover:Vim9: 関数定義の引数の型指定を必須としました。
* [8.2.0567](https://github.com/vim/vim/commit/2c330432cfb12181c61d698b5459bfd73d2610df): :four_leaf_clover:Vim9: (直前が空白文字の)`#`以降をコメントとして認識するようにしました。(関連patch: [8.2.0583](https://github.com/vim/vim/commit/cb711abf0f71d8c743cf73c76077f52e17732a8c), [8.2.0585](https://github.com/vim/vim/commit/7a09224583b2ad0d9d0648b53cc2d989d45ae96e), [8.2.0586](https://github.com/vim/vim/commit/4a8d9f2ed8c0079732e35d72656a000641353b94), [8.2.0611](https://github.com/vim/vim/commit/faac410409a8d693a0326ad9db42dca85419a391), [8.2.0612](https://github.com/vim/vim/commit/2c5ed4e3300378ce76c8d9c3818d6f73e5119f68), [8.2.0613](https://github.com/vim/vim/commit/1966c248814d5195edcd1208ed0e51e664a61283), [8.2.0624](https://github.com/vim/vim/commit/a72cfb80cd7aa589ad2a4fb8766ed6d30ea8ae33))
* [8.2.0563](https://github.com/vim/vim/commit/5e774c7579a4a00d3f44fdcfcb56861bd73372e4): :four_leaf_clover:Vim9: 関数定義(`:def`)が複数行にまたがる場合の行継続記号(`\`)を省略できるようにしました。(関連patch: [8.2.0555](https://github.com/vim/vim/commit/4fdae9996fb9a9bc1291a61e7b85cb360feb7599))
* [8.2.0562](https://github.com/vim/vim/commit/9c7e6dd653b62f54324f3c00d69cb348d8611a9f): :four_leaf_clover:Vim9: ([], {} または ()の外で)式が二項演算子で複数行にまたがる場合の行継続記号(`\`)を省略できるようにしました。 (関連patch: [8.2.0555](https://github.com/vim/vim/commit/4fdae9996fb9a9bc1291a61e7b85cb360feb7599))
* [8.2.0561](https://github.com/vim/vim/commit/e6085c53506e38d07334faa1002ee90b1933b128): :four_leaf_clover:Vim9: 関数呼び出しが複数行にまたがる場合の行継続記号(`\`)を省略できるようにしました。(関連patch: [8.2.0555](https://github.com/vim/vim/commit/4fdae9996fb9a9bc1291a61e7b85cb360feb7599))
* [8.2.0557](https://github.com/vim/vim/commit/bfe13ccc58ccb96f243a58309800410db1ccb52c): :four_leaf_clover:チャネル(`:h channel`)をIPv6対応しました。(関連patch: [8.2.0574](https://github.com/vim/vim/commit/352f554b854da1c45209bcb3db8ba943da1969f0), [8.2.0591](https://github.com/vim/vim/commit/aa82259fef8d08326029c580282b417790230e93), [8.2.0594](https://github.com/vim/vim/commit/b6fb0516ec862a18fdffe06c9400d507a7193835))
* [8.2.0555](https://github.com/vim/vim/commit/4fdae9996fb9a9bc1291a61e7b85cb360feb7599): :four_leaf_clover:Vim9: リストや辞書の設定が複数行にまたがる場合の行継続記号(`\`)を省略できるようにしました。(`:helpg Automatic line continuation`, `:h line-continuation`) (関連patch: [8.2.0561](https://github.com/vim/vim/commit/e6085c53506e38d07334faa1002ee90b1933b128), [8.2.0562](https://github.com/vim/vim/commit/9c7e6dd653b62f54324f3c00d69cb348d8611a9f), [8.2.0563](https://github.com/vim/vim/commit/5e774c7579a4a00d3f44fdcfcb56861bd73372e4), [8.2.0565](https://github.com/vim/vim/commit/675f716efb534798a3bdb651cdb272302127602a))
* [8.2.0554](https://github.com/vim/vim/commit/acc770a10f65107131473ea2ab4ae5d429dfe172): GUI: `t_Co`をセットしていなかった件を修正しました。(関連patch: [8.2.0646](https://github.com/vim/vim/commit/759d81549c1340185f0d92524c563bb37697ea88))
* [runtimeファイル更新](https://github.com/vim/vim/commit/d1caa941d876181aae0ebebc6ea954045bf0da24): [Todo](https://github.com/vim/vim/commit/d1caa941d876181aae0ebebc6ea954045bf0da24#diff-38d7929bd26d74d92ceddf984bbfc8db)更新。helpファイル更新。他。
* [8.2.0529](https://github.com/vim/vim/commit/49cf7cc8d2df1509cbe23647166c6cc954d59513): Vim9: 関数(`:def`)の引数がデフォルト引数の型と異なる場合のエラーチェックをしていなかった件を修正しました。
* [8.2.0521](https://github.com/vim/vim/commit/15352dc6ec43fd50cc3be4f4fd1ad74d5619da20): `readfile()`でblobの読み込みに失敗した場合、クラッシュすることがある件を修正しました。
* [8.2.0518](https://github.com/vim/vim/commit/5ba8d3578c835edcfb7e3b132e623c12e62f250b): :four_leaf_clover: 環境変数TERMが`xterm`で始まらない場合、端末ウィンドウ内の環境変数TERMを常に`xterm`で再設定している件を改善しました。(対応色数によっては`xterm-256color`または`xterm-color`を設定します) (関連patch: [8.2.0579]())
* [8.2.0507](https://github.com/vim/vim/commit/5259275347667a90fb88d8ea74331f88ad68edfc): `getbufvar()`の第2引数{varname}が空(`''`)の時、第１引数{expr}のバッファではなくカレントバッファの情報を返していた件を修正しました。
* [8.2.0499](https://github.com/vim/vim/commit/f10806b25090879fdc1a86cc0da2f4f34fd21921): `map()`でのlambdaの呼び出しが組み込み関数の約3倍時間が掛かっていた件を改善しました。(patch適用後は、ほぼ同じ時間になります)
* [8.2.0491](https://github.com/vim/vim/commit/2da0f0c445da3c9b35b2a0cd595d10e81ad2a6f9): :four_leaf_clover:`maparg()`の第4引数{dict}にTRUE指定時に返す辞書のエントリに`script`を追加しました。マッピングが`<script>`で定義されている場合に 1 になります。
* [runtimeファイル更新](https://github.com/vim/vim/commit/191acfdecabfbd2a74867e77004196fb3b4a8c14): [Todo](https://github.com/vim/vim/commit/191acfdecabfbd2a74867e77004196fb3b4a8c14#diff-38d7929bd26d74d92ceddf984bbfc8db)更新。helpファイル更新。他。

---
#### 凡例

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