Vim patchダイジェスト [2018/03]

[Vim](http://www.vim.org/) patchダイジェスト \[2018/03]
([8.0.1554](https://github.com/vim/vim/commit/072687032683b1994d25a114893d9a6f8bc36612) ～ [8.0.1655](https://github.com/vim/vim/commit/f3ba14ffd32faa1856a99cf657c426bf9d1204ae))

* [runtimeファイル更新](https://github.com/vim/vim/commit/25a6e8a769aa1c0d308b5f871132961f37986d0a): todoの更新。forthとhaskellのsyntax定義ファイル更新。
* [runtimeファイル更新] (https://github.com/vim/vim/commit/ab943431d8fcd856008a025b0e5652dd4b8007fc): helpファイルの更新(一部のファイルは文字コードをUTF-8に変更)。todoの更新。他。
* [8.0.1652](https://github.com/vim/vim/commit/f06b0b6c8f85ea9c320f2be30b25ed084969c1e2): `term_dumpwrite()`が合成文字を出力していなかったのを修正しました。
* [8.0.1651](https://github.com/vim/vim/commit/0751f51a5b428805a8c1e9fe529693d032bec991): :four_leaf_clover:`:ls`にterminalバッファのためのフラグ(`R`, `F`, `?`)を追加しました。
* [8.0.1650](https://github.com/vim/vim/commit/0c72fe4ed8430db41f43c5878e6ee60265dc49e9): `+listcmds`機能を基本機能としました。ソースコード内の`FEAT_LISTCMDS`の`#ifdef`を削除しました。
* [8.0.1649](https://github.com/vim/vim/commit/cd43effecab02c6c28b1c4a3a14f91b8c3f26c0d): :four_leaf_clover:argument listの補完をサポートしました。`:argdelete`の補完対応と`getcompletion()`の`{type}`と`:command`の`-complete`に`arglist`を追加。
* [8.0.1647](https://github.com/vim/vim/commit/2a77d21f7893ba14e682a3c5891d606f117a3f36): :four_leaf_clover:terminal APIで呼び出す関数名は`Tapi_`で始まる必要があるという仕様に変更しました。(関連patch: [8.0.1641](https://github.com/vim/vim/commit/8fbaeb195d9298c3a2a80300b5f96f1adddd2f59))
* [8.0.1641](https://github.com/vim/vim/commit/8fbaeb195d9298c3a2a80300b5f96f1adddd2f59): :four_leaf_clover:terminal APIを追加しました。terminal jobは特別なエスケープシーケンス(`<Esc>]51;`～`<07>`)を使ったJSONをVimに送信出来るようにしました。現状では、`call`でVim scriptのユーザ関数を引数付きで呼び出したり、`drop`で`:drop`コマンドのようにファイルを開いたりできます。(`:h terminal-api`) (関連patch: [8.0.1643](https://github.com/vim/vim/commit/2de50f87622cd4e631fd17845e16a94ed5992b80), [8.0.1644](https://github.com/vim/vim/commit/cf67a509e93167f14c892301e13de14636cedc61), [8.0.1645](https://github.com/vim/vim/commit/086eb876951aa0b0bee3de4ed0569bf4b70c6f31), [8.0.1647](https://github.com/vim/vim/commit/2a77d21f7893ba14e682a3c5891d606f117a3f36))
* [8.0.1639](https://github.com/vim/vim/commit/b5b49a3b430ea0aaf8cce6b7bc0e444f0211ddfb): libvtermのソースコードをmasterのHEADに同期しました。mergeで発生する問題も解決済みです。
* [8.0.1630](https://github.com/vim/vim/commit/295ac5ab5e840af6051bed5ec9d9acc3c73445de): :four_leaf_clover:`trim()`を追加しました。
* [8.0.1624](https://github.com/vim/vim/commit/5a3a49ed592e8300553590392721a5e55fede6e7): `term_dumpdiff()`と`term_dumpload()`にオプション指定を実装しました。
* [8.0.1616](https://github.com/vim/vim/commit/f05fa378229004fb64493b411b864709ce7da453): :four_leaf_clover:Windowsでも`'guioptions'`に`!`フラグを指定すると`:shell`で特別なterminalウィンドウ(system terminal)が開くようにしました。(関連patch: [8.0.1609](https://github.com/vim/vim/commit/135682517bc378cfdb63fe3a6e3553935f69f6ce), [8.0.1617](https://github.com/vim/vim/commit/42f652f733550a0d8bc9b030c9a5a62e7e2d8668), [8.0.1619](https://github.com/vim/vim/commit/81c3c89a28859de3aa167c53355f374394ada093))
* [8.0.1615](https://github.com/vim/vim/commit/52acb110ac025b57dad5f5ec6004abbe4726a718): `term_dumpload()`が正しい色を使用していなかったのを修正しました。
* [runtimeファイル更新](https://github.com/vim/vim/commit/98ef233e14faaaf42e0342da1803d493ce0337b2): いくつかのhelpファイルの文字コードをUTF-8にしました。他。
* [8.0.1614](https://github.com/vim/vim/commit/9ef2a30e6ff5830984b57dd3d682656789a7ad78): `make tags`の対象にlibvtermが含まれていなかったのを修正しました。
* [8.0.1612](https://github.com/vim/vim/commit/1dd98334d6daee8abefcd640291d4b777d9f0f96): :four_leaf_clover:引数なしの`:terminal`でshellを停止させた場合はデフォルトでウィンドウを閉じるようにしました。
* [8.0.1611](https://github.com/vim/vim/commit/af23bad0fd05b1f6495287089387a1f97efa5b49): system terminalでは`CTRL-W`をterminalコマンドとして使用しないようにしました。
* [8.0.1609](https://github.com/vim/vim/commit/135682517bc378cfdb63fe3a6e3553935f69f6ce): :four_leaf_clover:Linux: `'guioptions'`に`!`フラグを追加しました。このフラグが含まれている場合は`:shell`で特別なterminalウィンドウ(system terminal)が開きます。(関連patch: [8.0.1616](https://github.com/vim/vim/commit/f05fa378229004fb64493b411b864709ce7da453))
* [8.0.1608](https://github.com/vim/vim/commit/43cb6262141c0a0853680bd8d0433e04db3bf182): :four_leaf_clover:Windows: DirectXをデフォルトで有効にしました。
* [8.0.1607](https://github.com/vim/vim/commit/62dd452d02f4a17f7e9fdfb3656b71bea62e12fe): 起動オプション`--clean`指定時は .gvimrc を読み込まないようにしました。
* [8.0.1602](https://github.com/vim/vim/commit/625f0c1eb75da08229843fa393b1ee4e6547d285): dictキーとしてdictやarrayを使用しているJSONを`jcon_decode()`でparseするとクラッシュする件を修正しました。
* [8.0.1600](https://github.com/vim/vim/commit/f708ac592f47100a36f2bc12ec98ea6357fdfa27): `'termguicolors'`がonの時に`'t_Co'`に0をセットするとクラッシュする件を修正しました。
* [8.0.1598](https://github.com/vim/vim/commit/c48369c3fc507f398abbc933a60f653c6abe6701): terminalウィンドウ内でマウスによるテキスト選択がおこなえない件を修正しました。
* [8.0.1596](https://github.com/vim/vim/commit/b852c3e64d319d6ec47dd780c8654ae095e1d8c2): :four_leaf_clover:オートコマンドイベント`TerminalOpen`を追加しました。(関連patch: [8.0.1597](https://github.com/vim/vim/commit/e87303af3236b8fb5e1e3be4d0e2209344fbf8b2))
* [8.0.1595](https://github.com/vim/vim/commit/12a96de430779b88795fac87a2be666d9f661d1e): :four_leaf_clover:オートコマンドイベント`ExitPre`を追加しました。`:quit`か`:wq`でVimが終了する場合や`:qall`を使用した場合に`QuitPre`イベントの直後にトリガされます。
* [8.0.1593](https://github.com/vim/vim/commit/25cdd9c33b21ddbd31321c075873bb225450d2d2): :four_leaf_clover:アクティブなterminalウィンドウがある場合でも`:qall`でVimを終了できる仕組みを用意しました。(`term_setkill()`を追加しました。`terminal`のオプションに`++kill`を追加しました。) (関連patch: [8.0.1594](https://github.com/vim/vim/commit/435acdb88c849c6bac44ef30f24f29618b36af50))
  1. GUIの場合はWindowの`[X]`を押下後の確認ダイアログで`y`を選択。
  2. CUIの場合は`:confirm qall`として`y`を入力。
  3. `:term ++kill=term`で作成したterminalウィンドウがある場合は`:qall`で終了可能。
  4. (`:qall!`でVimを終了できるのは今まで通り)
* [runtimeファイル更新](https://github.com/vim/vim/commit/b5b7562475ad032a174b893286172de0d2c157cd): 軽微なドキュメント更新。
* [8.0.1592](https://github.com/vim/vim/commit/4d8bac8bf593ff087517ff79090c2d224325aae6): :four_leaf_clover:`'sessionoptions'`に`"terminal"`を追加しました。(`:h :mksession`)
* [8.0.1587](https://github.com/vim/vim/commit/3324d0a86421a634572758dcfde917547f4d4c67): :four_leaf_clover:`*`および`+`レジスタのペースト(`:h i_CTRL-R`)は常にレジスタの内容そのままでおこなうようにしました。
* [8.0.1586](https://github.com/vim/vim/commit/201dc67db587e77a845fd24681352d61e57156e2): 非GUIのMacOS版で対話的I/F関数(`:h interactive-functions`)が動作していなかった件を修正しました。
* [8.0.1582](https://github.com/vim/vim/commit/157d813be41c122e210b0eb1cd1e862fbddbf665): Windows: コンソールでマウスの移動イベントを極力使用するようにしました。(関連patch: [8.0.1585](https://github.com/vim/vim/commit/ebf142a1ed1824ed17a3eb4f64e75616e3b3d0e8))
* [8.0.1581](https://github.com/vim/vim/commit/3b3a9a5609df2cbaef3512032ac47c1779fbc775): Windows: gvimでIME制御が出来なくなっていた件を修正しました。(関連patch: [8.0.1567](https://github.com/vim/vim/commit/3b3a9a5609df2cbaef3512032ac47c1779fbc775))
* [8.0.1576](https://github.com/vim/vim/commit/16896a10199572ff05149786868ff402aa8e31ea): :four_leaf_clover:Perl I/F: `VIM::Buffers()`がリストされていないバッファも返すようにしました。
* [8.0.1575](https://github.com/vim/vim/commit/63e82db6fc910b2d8f1cd018894e50e8b4448155): Virtual Replaceモード(`:h gR`)でクラッシュする場合がある件を修正しました。(関連patch: [8.0.1577](https://github.com/vim/vim/commit/e7808481507b9e11ae73c8f865e95eb2d20f6cc8), [8.0.1579](https://github.com/vim/vim/commit/df0d24b62742edd3ea73795b96a771501e642970))
* [8.0.1570](https://github.com/vim/vim/commit/29a2c08d792e4458a0af8371f5341394829fce29): terminalウィンドウ内で`:popup`が使用できなかった件を修正しました。(関連patch: [8.0.1574](https://github.com/vim/vim/commit/987723e084660290270b3c3d943eb13bd828d5da), [8.0.1578](https://github.com/vim/vim/commit/69f5a3011d5a93e0d54837e97d625bd6c253d897), [8.0.1588](https://github.com/vim/vim/commit/52f18a112a073c39187cd93f26115d1e2bfd29ce))
* [8.0.1566](https://github.com/vim/vim/commit/8a3bb56230d220b8e1b4dcca517ed95f5341b8c7): ソースコード内の`FEAT_SCROLLBIND`と`FEAT_CURSORBIND`の`#ifdef`を削除しました。(関連patch: [8.0.1580](https://github.com/vim/vim/commit/946acdac5b4e334f816e78f7876bde9d97b3d96a))
* [8.0.1565](https://github.com/vim/vim/commit/107279c17b3a21899e0a9d0293ada040216539ba): 非GUIのMacOS版のビルドが出来ない件を修正しました。
* [8.0.1564](https://github.com/vim/vim/commit/f2bd8ef2b4507d02c6043affff8f7e85e3414d5f): `+autocmd`機能を基本機能としました。ソースコード内の`FEAT_AUTOCMD`の`#ifdef`を削除しました。
* [8.0.1563](https://github.com/vim/vim/commit/3f54fd319f6641b4bed478bcc90cdb39ede68e31): :four_leaf_clover:`getwinpos()`を追加しました。(関連patch: [8.0.1573](https://github.com/vim/vim/commit/89894aa671ed1db03d95d38cab300702c242239d))
* [8.0.1561](https://github.com/vim/vim/commit/069dafc1ded60d9ee0fee4bcecce78ac8a235d87): rustのsyntaxハイライトでクラッシュする件を修正しました。
* [8.0.1558](https://github.com/vim/vim/commit/aef8c3da2ba59285b7cfde559ae21cdce6ba6919): :four_leaf_clover:terminalウィンドウ内の右クリックでポップアップメニューを表示する機能を実装しました。(関連patch: [8.0.1559](https://github.com/vim/vim/commit/658a154cbf2362c49a9797d9b2b9b69f481cd940), [8.0.1560](https://github.com/vim/vim/commit/3767b61ad99fe6ff2cace2dccb5d35331786735f))
* [8.0.1557](https://github.com/vim/vim/commit/c71807db9c1821baf86796cd76952df36ff1a29a): :four_leaf_clover:`printf()`を引数が1つの場合でも動作するようにしました。
* [8.0.1556](https://github.com/vim/vim/commit/590ec878a52b3b3d4453475f1eb4899f2b37969f): terminalの`'t_RS'`のレスポンスを正しく解析できない場合がある件を修正しました。(`:h 't_RS'`)
* [8.0.1554](https://github.com/vim/vim/commit/072687032683b1994d25a114893d9a6f8bc36612): 起動オプション`--clean`指定時は`'runtimepath'`からホームディレクトリを除外するようにしました。(関連patch: [8.0.1555](https://github.com/vim/vim/commit/77780b66f4c5573df999a7319d77a852ea4ca837)) 

---
#### 凡例

|表記|意味|
|:------|:------|
|:four_leaf_clover:|新機能、大幅な仕様変更|
|`'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)を参照。