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

[Vim](http://www.vim.org/)のリリースされた[patch](https://github.com/vim/vim/commits/master)の説明です。patchの内容を確認し、必要であれば動作確認をおこなったうえで書いています。英語を忠実に訳すよりは、Vimを使っている人が理解しやすいあたたかい文章になるように心がけています。
**新機能、大幅な仕様変更には、:four_leaf_clover:が付いています。**
([8.1.0866](https://github.com/vim/vim/commit/1c321dcee966b82a527cb34bbadd5874d6bc454a) ～ [8.1.0985](https://github.com/vim/vim/commit/ab350f89f9646e07aefe16a32ba3ddb847496b4a))

* [8.1.0985](https://github.com/vim/vim/commit/ab350f89f9646e07aefe16a32ba3ddb847496b4a): 正規表現で巨大な数値を使用するとクラッシュする件を修正しました。
* [8.1.0974](https://github.com/vim/vim/commit/882d02eeb571a13a502fe82a04c9eaffa630c294): :four_leaf_clover:terminalウィンドウで`CTRL-W gT`すると前のタブページに移動するようにしました。(関連patch: [8.1.0972](https://github.com/vim/vim/commit/72e83c1ae535e2ebc35b114d34d0a811eb62b068))
* [8.1.0972](https://github.com/vim/vim/commit/72e83c1ae535e2ebc35b114d34d0a811eb62b068): :four_leaf_clover:terminalウィンドウで`CTRL-W gt`すると次のタブページに移動するようにしました。(関連patch: [8.1.0974](https://github.com/vim/vim/commit/882d02eeb571a13a502fe82a04c9eaffa630c294))
* [runtimeファイル更新](https://github.com/vim/vim/commit/f6b401090e816b4216f783a9b85d21d9ad134ff8): [Todo](https://github.com/vim/vim/commit/f6b401090e816b4216f783a9b85d21d9ad134ff8#diff-38d7929bd26d74d92ceddf984bbfc8db)更新。helpファイル更新。他。
* [8.1.0971](https://github.com/vim/vim/commit/55d3bdbbe2bfc7a78b4aa17763788dbddf87cab0): `set selection=exclusive`時にビジュアルモードでテキストオブジェクト選択をおこなうとカーソルが左に移動してしまう件を修正しました。
* [8.1.0964](https://github.com/vim/vim/commit/353aca1215fad9c5413150a80df95ee3abb7e76a): :alien:CIで画面ダンプのテスト(`:h terminal-dumptest`)が失敗した時にエラー情報を出力するようにしました。
* [8.1.0958](https://github.com/vim/vim/commit/38f08e76acf7d21bb34cf8f79f0f82eb63cdc987): :four_leaf_clover:ヘンテコリンな正規表現パターンをコンパイルするのがとても遅い件を修正しました。`assert_inrange()`がfloat値を受け入れられるようにしました。
* [8.1.0957](https://github.com/vim/vim/commit/35856718881834a76225530d502c68fdec6584cf): macOS: ネットワーク共有でfsyncが失敗することがある件を修正しました。(関連patch: [8.1.0961](https://github.com/vim/vim/commit/9166838420c2e2029270c4683f68aecd3db5a484))
* [8.1.0956](https://github.com/vim/vim/commit/b9ddda6c2d98d99c09d58145c1b5b4042a8fd92c): `'diffopt'`に`context:0`を指定した場合に正しく動かない件を修正しました。(context:1 として動作します)
* [8.1.0955](https://github.com/vim/vim/commit/66ae3d199fdcd732eb79266e913e4e6d2e82ee76): Windows: `matchit`プラグインのautoloadディレクトリがインストーラーに収録されていない件を修正しました。
* [8.1.0953](https://github.com/vim/vim/commit/c9629251a634d4f5988c8162ba8249026d1af687): とても長い行数のファイルが 2^31 - 1 行に切り捨てられる件を修正しました。
* [8.1.0950](https://github.com/vim/vim/commit/14816ad6e58336773443f5ee2e4aa9e384af65d2): if_python: `if 0`～`endif`内の`:python`や`:python3`によって`'pyxversion'`が変更されてしまう件を修正しました。
* [8.1.0948](https://github.com/vim/vim/commit/d53931ae7306acce2cfe8c44db0a15d79adf9e00): `+eval`なしでビルドしたVimを`vim --clean`で起動すると`runtime/defaults.vim`でエラー`E319`が発生する件を修正しました。
* [runtimeファイル更新](https://github.com/vim/vim/commit/4c92e75dd4ddb68dd92a86dd02d53c70dd4af33a): 
 * [Todo](https://github.com/vim/vim/commit/4c92e75dd4ddb68dd92a86dd02d53c70dd4af33a#diff-38d7929bd26d74d92ceddf984bbfc8db)更新。helpファイル更新。他。
 * :four_leaf_clover:[8th](https://8th-dev.com/)言語のsyntax定義ファイルとftpluginを追加しました。
* [8.1.0941](https://github.com/vim/vim/commit/4f97475d326c2773a78561fb874e4f23c25cbcd9): :alien:Windows: マクロ定義が複数定義されていたので整理しました。WIN3264, WIN32 と _WIN32 の代わりに`MSWIN`を使用します。FEAT_GUI_W32 の代わりに`FEAT_GUI_MSWIN`を使用します。どちらも64bit Windowsの場合も定義されます。「64bit Windowsかどうか」を判定するには`_WIN64`を使用します。(関連patch: [8.1.0947](https://github.com/vim/vim/commit/7dca2ebbcf508ef2533f1b9f998f7e63c9bbd598), [8.1.0949](https://github.com/vim/vim/commit/0472b6d149445579e3a63519b15f099f9adda3f7), [8.1.0951](https://github.com/vim/vim/commit/44b443c5db7a372b2da519be15dd962c552e1355))
* [8.1.0939](https://github.com/vim/vim/commit/3678f65d43d10b36dc62738aab2f341fa1e18a32): :four_leaf_clover:目印(`:sign`)で目印グループ名とバッファ名の補完をサポートしました。
* [8.1.0935](https://github.com/vim/vim/commit/8bfd9469cef536f171e6666f9d9217192e09d161): 古い正規表現エンジンが `'iskeyword'` に無効なバッファを使用したり、未初期化のバッファポインタを参照したりしてクラッシュすることがあるのを修正しました。
* [8.1.0932](https://github.com/vim/vim/commit/14184a3133b9a6ee5f711d493c04e41ba4fa7c2f): :four_leaf_clover:Farsi(ペルシア語)サポートを削除しました。起動オプションの`-F`やオプション`'altkeymap'`や`'fkmap'`等を廃止しました。(関連patch: [8.1.0943](https://github.com/vim/vim/commit/749f07c0db58d4f2fed2017f5a55bb053c9475ab). [8.1.1038](https://github.com/vim/vim/commit/dc4fa190e7b9d6ba49416ce875d2192c4444d3eb))
* [8.1.0920](https://github.com/vim/vim/commit/29ae223ddcfcbbce46c7e1f4e8fa71b8f2674271): 端末ノーマルモードでのジョブ出力がウィンドウをめちゃくちゃにする件を修正しました。(関連patch: [8.1.0922](https://github.com/vim/vim/commit/96baf02aa87dc6ec43850c5617fe53061edd97bf), [8.1.0924](https://github.com/vim/vim/commit/7e841e3ce507d3c03175213d167692609028fdd9), [8.1.0925](https://github.com/vim/vim/commit/5ff7df509ad6bde89991d38d87a6fc796b862ba7))
* [8.1.0918](https://github.com/vim/vim/commit/9b5c1fcdeae75f82a2083fafbbf75ab220f6ac1e): 起動時のメッセージが文字コード変換されていない件を修正しました。カレントコードページが`'encoding'`と異なる場合に変換します。
* [8.1.0916](https://github.com/vim/vim/commit/b999ba2778b6c02fdd100e498a9ba5b2e7036f7d): if_python: Python 3.7 で "find_module" が利用できない件を修正しました。
* [8.1.0915](https://github.com/vim/vim/commit/a787019518a540a7b4d0070f15467931b870ac89): fsync() がmacOSで正しく動かないことがある件を修正しました。
* [8.1.0914](https://github.com/vim/vim/commit/5fd0f5052f9a312bb4cfe7b4176b1211d45127ee): :alien:`findfile()`関連のソースコードを新規ファイル findfile.c に移動しました。
* [8.1.0910](https://github.com/vim/vim/commit/15bbd6ec871a0efdd16256e1fccbaac0fd374cbd): トリッキーな検索パターンでクラッシュする件を修正しました。
* [8.1.0905](https://github.com/vim/vim/commit/5567ad48b66dff13670af52a48509059acc34dfe): 複雑な正規表現でクラッシュする件を修正しました。addstate()の再帰回数に制限を設けました。(関連patch: [8.1.0907](https://github.com/vim/vim/commit/5382f12c910b7f8e46acdde5488f26a86f9fcac1), [8.1.0913](https://github.com/vim/vim/commit/688b3983d8b321e0d32dd51914fa474a0988daf6))
* [8.1.0902](https://github.com/vim/vim/commit/ff697e6cef8ced7717a21fd525ab3200b2f1724f): :four_leaf_clover:複合代入演算子`/=`, `*=` と `%=`を追加しました。(関連patch: [8.1.0990](https://github.com/vim/vim/commit/e21c1580b7acb598a6e3c38565434fe5d0e2ad7a))
* [8.1.0898](https://github.com/vim/vim/commit/0ea21e41c6789c356762f970ecf168a897dcf8b6): `$VIMRUNTIME/rgb.txt`を変更してVimをクラッシュさせることが出来る件を修正しました。エントリー数の上限を10000とし、ファイル読み込み失敗時のリトライをしないようにしました。
* [8.1.0894](https://github.com/vim/vim/commit/dce1e89be4675bcdbc9785584d3da25295481e63): Windows: `resolve()`がリパースポイントを解析しない件を修正しました。
* [8.1.0892](https://github.com/vim/vim/commit/eeb1b9c7ed33c152e041a286d79bf3ed00d80e40): locationリストがまだ使われている間にautocmdでそれが閉じられるとVimがクラッシュする件を修正しました。
* [8.1.0889](https://github.com/vim/vim/commit/6524068ff3252f1373807f1ebfde21408cef624e): Windows: チャネルの書き込み時にハングする場合があるのを修正しました。
* [8.1.0888](https://github.com/vim/vim/commit/31b816042fca879b11965ddd75287732563ba698): スコープが`a:`の辞書が(ドキュメントと異なり)書き換え可能な件を修正しました。(関連patch: [8.1.0897](https://github.com/vim/vim/commit/05c00c038bc16e862e17f9e5c8d5a72af6cf7788))
* [8.1.0887](https://github.com/vim/vim/commit/9474716d39764ac5642e55b5548580cf53bd9bed): `:subsitute`の`l`フラグがセットされたままになる件を修正しました。
* [8.1.0881](https://github.com/vim/vim/commit/8c62a08faf89663e5633dc5036cd8695c80f1075): rvimで(if_pythonやif_ruby等の)各種言語インタフェースを介してシェルコマンドを実行できてしまうのと、`writefile()`や `histadd()`等でファイル書き込み出来てしまう件を修正しました。(関連patch: [8.1.0883](https://github.com/vim/vim/commit/54d6fe5e60c0c488a424c078963ead40ae7dc397), [8.1.0885](https://github.com/vim/vim/commit/18c5632cab09e5e51320f55005f310920648f35b), [8.1.0896](https://github.com/vim/vim/commit/5a6698169d10833abad88c98e5a332ddde5d110d), [8.1.0899](https://github.com/vim/vim/commit/e0fb7d1e38e1cf699412e212cda863420f5f8bd2))
* [8.1.0880](https://github.com/vim/vim/commit/c6ddce3f2cf6daa3a545405373b661f8a9bccad9): Windows: winpty/conpty の選択方法がイケていないのを修正しました。`'termmode'`を`'termwintype'`に変更、`:term`の引数 `++winpty`, `++conpty`を`++type=`に変更、`term_start()`の {options} のエントリの`term_mode`を`tty_type`に変更、`job_info()`の戻り値のエントリに`tty_type`を追加しました。(関連patch: [8.1.0870](https://github.com/vim/vim/commit/aa5df7e3127dff6b7336df0903f5c569a40eb174))
* [8.1.0879](https://github.com/vim/vim/commit/0036201a1a096913840d3df8ff08eb58eaae90a6): Windows: 一時ファイル名のエンコーディングが間違っている可能性があるのを修正しました。(関連patch: [8.1.0895](https://github.com/vim/vim/commit/ec0f50a35e207e01ff54cef954313030e3ab42a6))
* [8.1.0877](https://github.com/vim/vim/commit/ee8188fc74a7cf9ee7acb634b2bb7a032d0cb24c): quickfixウィンドウを開く時にバッファを再利用するようにしました。
* [8.1.0876](https://github.com/vim/vim/commit/2a78b7c70471527d83adef6b147dbfb6c9f838f7): ポップアップメニュー項目が確定前に最初の補完マッチ項目がカーソル位置に表示されない件を修正しました。
* [runtimeファイル更新](https://github.com/vim/vim/commit/314dd79cac2adc10304212d1980d23ecf6782cfc): [Todo](https://github.com/vim/vim/commit/314dd79cac2adc10304212d1980d23ecf6782cfc#diff-38d7929bd26d74d92ceddf984bbfc8db)更新。helpファイル更新。他。
* [8.1.0871](https://github.com/vim/vim/commit/63d1fea8141c3dfb36aeb9de60e5f1f90450acff): if_ruby: Ruby 2.6.0 でビルドできない件を修正しました。
* [8.1.0870](https://github.com/vim/vim/commit/aa5df7e3127dff6b7336df0903f5c569a40eb174): :four_leaf_clover:Windows: [ConPTY](https://blogs.msdn.microsoft.com/commandline/2018/08/02/windows-command-line-introducing-the-windows-pseudo-console-conpty/)をサポートしました。(関連patch: [8.1.0880](https://github.com/vim/vim/commit/c6ddce3f2cf6daa3a545405373b661f8a9bccad9), [8.1.0900](https://github.com/vim/vim/commit/48773f1f83e666c49b9d88ea6a392d50215ca013), [8.1.0909](https://github.com/vim/vim/commit/d9ef1b8d77f304c83241f807c17ffa26c9033778), [8.1.0912](https://github.com/vim/vim/commit/18442cbcc0d335a8ea6947e94eee9a2ab9552690), [8.1.0929](https://github.com/vim/vim/commit/5acd9872580a12ca1138275bf65d1cb9349e2a53), [8.1.0960](https://github.com/vim/vim/commit/8caa43d8159555076af6acc242185f5475c1d199))
* [8.1.0868](https://github.com/vim/vim/commit/889da2f2438c8168f9a25dc776360b81109bad44): リストか辞書を返すユーザー定義関数の呼び出し後にクラッシュすることがある件を修正しました。
* [8.1.0867](https://github.com/vim/vim/commit/65951258d65b71581aeb117dbb7defa8a87ce38f): if_python: Python 2.4 でビルドできない件を修正しました。

---
#### 凡例

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