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

[Vim](http://www.vim.org/) patchダイジェスト \[2018/04]
([8.0.1656](https://github.com/vim/vim/commit/8b31a6ff7a0a8184ddc9997a0cc4aa5f2350b279) ～ [8.0.1780](https://github.com/vim/vim/commit/77bfd756a02c3b3150d6c08ddbf89b66362dad8d))

* [runtimeファイル更新](https://github.com/vim/vim/commit/15142e27aaafa15b72d1042c25fbb5e4f12b6736): 
  * helpファイルの更新(`getqflist()`と`setqflist()`の使用例追加含む。`:h getqflist-examples`, `:h setqflist-examples`)
  * 翻訳ファイル、todoの更新、他。
* [8.0.1779](https://github.com/vim/vim/commit/35e802e713382d7e76232ad344af7dcd577e43de): ビジュアルブロックモードで文字を削除するとおかしな結果になることがある件を修正しました。
* [8.0.1777](https://github.com/vim/vim/commit/60a68362aa73f4a6cb534688978f9dc2b16e60fe): :four_leaf_clover:`ColorSchemePre`イベントを追加しました。別のcolorschemeをロードする直前に今のcolorscheme設定をクリーンアップする事が出来るようになりました。
* [8.0.1774](https://github.com/vim/vim/commit/13d3b05ed2cf9a54b18b4e8236f0af2c5386200c): :four_leaf_clover:とても長い行の読み込みが遅い件を改善しました。
* [8.0.1771](https://github.com/vim/vim/commit/50182fa84e20a0547f3e2bd6683ef799fcd27855): テスト用共通関数に`WaitFor()`のassertする版`WaitForAssert()`を追加しました。(関連patch: [8.0.1776](https://github.com/vim/vim/commit/0e9d1ae3216a5940b36bb56d155fb300b2e55b00))
* [8.0.1770](https://github.com/vim/vim/commit/65a5464985f980d2bbbf4e14d39d416dce065ec7): :four_leaf_clover:`assert_equal()`等のassert系関数は戻り値を返すようにしました。`v:errors`に項目を追加した場合は`1`、その他は`0`を返します。(`:h assert-return`)
* [8.0.1767](https://github.com/vim/vim/commit/9d34d90210ba52ebaf45973282e5921f5af364c7): `'incsearch'`設定時の検索(`/`)の文字入力でカレント行は変わらないのにバッファが上や下に動くことがある件を修正しました。
* [8.0.1766](https://github.com/vim/vim/commit/c3c3e698966fac86dee94799b70947defb85440d): `:iabbrev`が正しく動作しない場合があるのを修正しました。(関連patch: [8.0.1758](https://github.com/vim/vim/commit/24a2d7264fc2394f69a9a890b34d1f09cf63b14e))
* [8.0.1755](https://github.com/vim/vim/commit/f1f2f837bc85c93ba81176383cccd6734f0129fb): Windows: UTF-16のSurrogate Code Pointの場合に下位ワードを受け取る前にコード変換をしていた件を修正しました。
* [8.0.1750](https://github.com/vim/vim/commit/3b9474b4ad4d85b5396f7f641b436f193dc9d486): autocommand内でlocationリストをクリアするとクラッシュする件を修正しました。
* [8.0.1748](https://github.com/vim/vim/commit/a4baf5b32519855bb176a7aa0e9397c137ca890a): `CmdlineEnter`イベント時の`<afile>`をファイル名として扱っていた件を修正しました。
* [8.0.1743](https://github.com/vim/vim/commit/6d150f783d5d3820fe69734dda1e79b8276a84d2): :four_leaf_clover:terminalウィンドウに関するオプションには`termwin`プレフィックスを付けるように変更しました。
  * `'termsize'` → `'termwinsize'`
  * `'terminalscroll'` → `'termwinscroll'`
  * `'termkey'` → `'termwinkey'`

    (関連patch: [runtimeファイル更新](https://github.com/vim/vim/commit/7dda86f2ff35bb80afce4da24782fd58216bbe50), [8.0.1794](https://github.com/vim/vim/commit/b833c1ef7be1ed216a967dd7262473ec97084fa2))
    ※~~旧オプション名もまだ使用できますが、廃止予定なので新オプション名の使用をお勧めします。~~ 旧オプション名は8.0.1794で削除しました。
* [8.0.1742](https://github.com/vim/vim/commit/e1fc51558dc14906a8d9f6a6e7bb1ac2a6ba8f3d): :four_leaf_clover:`job_info()`が引数なしで呼ばれた場合はジョブのリストを返すようにしました。その他に、返す辞書の`cmd`エントリにジョブを開始したコマンドと引数をリストで返すようにしました。(関連patch: [8.0.1746](https://github.com/vim/vim/commit/a69b39511d769bc88f0854bd026556fdb9bd2817), [8.0.1747](https://github.com/vim/vim/commit/ebe74b73677b06db7d483987a863b41cee051cc0))
* [8.0.1741](https://github.com/vim/vim/commit/259a90f7ce4d6d983a7fe5461da88cc52c46d9fe): Windows: msys2でRuby interfaceを静的にビルド出来ない件を修正しました。(関連patch: [8.0.1739](https://github.com/vim/vim/commit/6176697203b0f168f4566597e15d8488b62ad490))
* [runtimeファイル更新](https://github.com/vim/vim/commit/7dda86f2ff35bb80afce4da24782fd58216bbe50): helpファイル等の更新。※ここで先走って 8.0.1743 の変更に関連するhelpファイルの更新がおこなわれました。(関連patch: [8.0.1743](https://github.com/vim/vim/commit/6d150f783d5d3820fe69734dda1e79b8276a84d2))
* [8.0.1738](https://github.com/vim/vim/commit/5d69da462f584a3aefb3427b127334bf9af3a4b0): :four_leaf_clover:`:args`の出力が複数行の場合に列を揃えて見やすくしました。
* [8.0.1734](https://github.com/vim/vim/commit/f98a39ca57d001ba3e24831bae1e375790fb41f0): `:packadd`するパスが`'rtp'`のパスに前方一致する場合に`'rtp'`に登録されない件を修正しました。
* [8.0.1731](https://github.com/vim/vim/commit/e87edf3b85f607632e5431640071fdbc36b685b2): インサートモードの補完中でカーソル行に文字が補完されていない状態で文字を入力してEnterキーを押すと入力した文字が消えてしまう件を修正しました。(関連patch: [8.0.1733](https://github.com/vim/vim/commit/bad0ce7b26be5eed8524347018f4c835b212f8d1))
* [8.0.1730](https://github.com/vim/vim/commit/561f8a5a4612751c2a4ebd6bf918cbc3be867350): :four_leaf_clover:configureに使用するC99の機能のコンパイラチェックを追加しました。また、使用するC99の機能を暫定的に文書化しました。(`:h style-compiler`)
  * // コメント
  * 最後のenum項目の後ろのカンマ(,)
  * `long long int`および`long long unsigned`
  * ~~flexible array member~~  

    (関連patch: [8.0.1723](https://github.com/vim/vim/commit/f3a411783c9736645d6ba480c5ff9d861164c040), [8.0.1724](https://github.com/vim/vim/commit/06965b838f3677251668dca726b07c5ad2499341), [8.0.1726](https://github.com/vim/vim/commit/df2c774ded4c2ed169390a352099c23b6db657c4), [8.0.1729](https://github.com/vim/vim/commit/ea3ece405ab55f44018257bd2f5021231af8e87f), [8.0.1735](https://github.com/vim/vim/commit/285e3358696b1bc6296e5d4c53425680ce8fbd54), [8.0.1736](https://github.com/vim/vim/commit/226400830b470774bf5a552e1af10706b609720c))
* [8.0.1722](https://github.com/vim/vim/commit/498c2562e1bcc72492fe8da8a76504f893e9b5fe): :four_leaf_clover:`'termsize'`に`"rows*cols"`の指定形式をサポートしました。
* [8.0.1720](https://github.com/vim/vim/commit/802bfb14636b24d86d0ca8e0947d808b9b7c941e): タイマが動作しているterminalウィンドウでshellが終了してもウィンドウを閉じない場合があるのを修正しました。
* [8.0.1719](https://github.com/vim/vim/commit/e1a32310d5e9684608b893ab8295191d63178b4e): :four_leaf_clover:configureのオプションに`--with-python-command`と`--with-python3-command`を追加しました。python2およびpython3の実行ファイル名を指定します。また、`--with-python-config-dir`と`--with-python3-config-dir`が廃止予定(deprecated)であることを`./configure --help`の出力に明記しました。
* [8.0.1717](https://github.com/vim/vim/commit/3cba73423e5304ef7ccdb2280d65562d2f06f483): (8.0.1709で導入した)configureでのC89チェックはあまりにも多くの問題を引き起こすので、C89強制をやめました。(関連patch: [8.0.1709](https://github.com/vim/vim/commit/2e324950b83fcdf60843b54a6a339183370f338a), [8.0.1710](https://github.com/vim/vim/commit/2a43230ce39eea340aab15fb50a083bc527fb8d0))
* [8.0.1712](https://github.com/vim/vim/commit/8c041b6b95f49f7383cf00e2036cf009b326fa8d): :four_leaf_clover:`'terminalscroll'`を追加しました。terminalウィンドウのスクロールバック行数を設定できます。(関連patch: [8.0.1715](https://github.com/vim/vim/commit/8c94a549051cc4d4cbb8cabd321724a85fe40c23), [8.0.1718](https://github.com/vim/vim/commit/6c672194cd06fb1ab1289475aad31a9769bdb2ad))
* [8.0.1711](https://github.com/vim/vim/commit/a42d363bac8a581afe769c370db70cf833767c41): :four_leaf_clover:`term_setsize()`を追加しました。(関連patch: [8.0.1714](https://github.com/vim/vim/commit/6e72cd0d7267b9545ef966a53e62706914a96042), [8.0.1716](https://github.com/vim/vim/commit/ac3e830065f1e54c422cdd2f3157fb35fac27e04))
* [8.0.1708](https://github.com/vim/vim/commit/78a16b0f2a142aae1fdc96c50ab0f25194d0e755): :four_leaf_clover:`mkdir()`の第2引数に`"p"`を指定した場合は既にディレクトリが存在していてもエラーにならないようにしました。
* [8.0.1707](https://github.com/vim/vim/commit/98da6ecab905df48a67da36ce60233f45726c979): `'winfixheight'`設定時に`:belowright 10new`するとウィンドウ内がスクロールしてしまう件を修正しました。
* [8.0.1706](https://github.com/vim/vim/commit/b59118d5012a6a07e2d54504fbb04837b5a1208c): :four_leaf_clover:terminalウィンドウ内の`CTRL-W` `CTRL-\`で`CTRL-\`をterminal jobに送信するようにしました。(`:h terminal-typing`)
* [8.0.1705](https://github.com/vim/vim/commit/5bab555c2f1b3b86d57e4adeb86d908eff477fc9): ビジュアルモード中にウィンドウを垂直分割するとモードメッセージが更新されない場合があるのを修正しました。
* [8.0.1704](https://github.com/vim/vim/commit/b8e22a053b68774dfd86fd829d9dba2333f09c05): macOSで`'backupskip'`のデフォルト値が動作していなかったのを修正しました。
* [8.0.1701](https://github.com/vim/vim/commit/cccd62d435097814ea93e384920443fb2419e663): MinGWでのビルド時もMSVCと同様に`COLOR_EMOJI`フラグでカラー絵文字サポートを無効に出来るようにしました。
* [8.0.1700](https://github.com/vim/vim/commit/56f99550444949e12eca4a31ee60be91b2ab3a6e): Coverallsで`xxd`のカバレッジ統計がちゃんと動かないので、`xxd`ディレクイトリを再び除外しました。(関連patch: [8.0.1696](https://github.com/vim/vim/commit/d60e0a1d202d49503ba95a40c165172c8f61db7a), [8.0.1698](https://github.com/vim/vim/commit/1ed00330bcd169d5fcd72608e2745612b5b1d5b5))
* [8.0.1699](https://github.com/vim/vim/commit/9ce4213b0322477ace1df5e0aa356b1a5551b445): configure関連のファイルからPython 1.4のための余分なものを削除しました。
* [8.0.1692](https://github.com/vim/vim/commit/3a21d9c7bb4d58cccd2152e319daa8f8ffa2e664): :four_leaf_clover:configure時に`--with-python-config-dir`と`--enable-pythoninterp=dynamic`が指定された場合のみ`PYTHON_HOME`を定義するようにしました。同様に`--with-python3-config-dir`と`--enable-python3interp=dynamic`が指定された場合のみ`PYTHON3_HOME`を定義するようにしました。(関連patch: [8.0.1683](https://github.com/vim/vim/commit/0424958bde3d3e74c721ba39ab4d5a4744897393))
* [8.0.1690](https://github.com/vim/vim/commit/8dd1761e69d70bb4b5848dc4c213792d9121787a): vimの代わりにgvimを使って個別のtestを実行するのが面倒だったので簡単にしました。(src/Makefileを`VIMTESTTARGET`で検索)
* [8.0.1689](https://github.com/vim/vim/commit/29f9ed20b42e7badea6cfb82fb1fb8d71f33e282): xxdのtestを追加しました。(関連patch: [8.0.1691](https://github.com/vim/vim/commit/164268d4cf84fa0efd984fddbef4a41366aabd46), [8.0.1695](https://github.com/vim/vim/commit/6995c0a7a91986caa0b495dd926d440c1e99f651))
* [8.0.1685](https://github.com/vim/vim/commit/f59c6e8cee092433d325ba21a107654a8d84f776): :four_leaf_clover:`term_setansicolors()`, `term_getansicolors()` および`g:term_ansi_colors`を追加しました。terminalウィンドウでANSIカラーの取得/設定が可能になりました。
* [8.0.1683](https://github.com/vim/vim/commit/0424958bde3d3e74c721ba39ab4d5a4744897393): :four_leaf_clover:configure時に`PYTHON_HOME`および`PYTHON3_HOME`を定義しないようにしました。(定義するとPythonのupgradeでVimのpython_ifが壊れてしまうため) (関連patch: [8.0.1686](https://github.com/vim/vim/commit/d088240b96bc8b2bdba9242dcb9e3d36f1e16c48), [8.0.1692](https://github.com/vim/vim/commit/3a21d9c7bb4d58cccd2152e319daa8f8ffa2e664))
* [8.0.1680](https://github.com/vim/vim/commit/756ef113d14428e598274f87672d7f0e34ff9781): libvtermによるメモリアロケーションがprofileに表示されない件を修正しました。
* [8.0.1676](https://github.com/vim/vim/commit/4ac2e8d8e60dcc7dbff662e177b86ccfbda7cd9e): gccでコンパイル時に間違ったprintfフォーマットにwarningを出すようにしました。(関連patch: [8.0.1677](https://github.com/vim/vim/commit/ea39176baab52b646d1e2676e662def718ddd365), [8.0.1679](https://github.com/vim/vim/commit/672afb9f66c64e031a2b609bdee0cb873883c9ec), [8.0.1681](https://github.com/vim/vim/commit/e80757c1545286240d687e9a303cf8eeb3f9a6de))
* [8.0.1674](https://github.com/vim/vim/commit/77557a7ae66830cb21c79d3a2b48a93b086599b3): libvtermが分割された長いOSC文字列を処理出来ない件を修正しました。
* [8.0.1671](https://github.com/vim/vim/commit/22efba47deb7e504142487fdc1617ec638cf0683): `job_start()`の引数`env`に辞書でないものを渡すとクラッシュする件を修正しました。
* [8.0.1669](https://github.com/vim/vim/commit/e1bb879f49665bb828197135b80aaf72cc190073): `:vimgrep`が間違ったquickfixリストにエントリを追加する場合がある件を修正しました。
* [runtimeファイル更新](https://github.com/vim/vim/commit/51ad4eaa22e15cf1fe6c45d82c7e1371e00401a4): helpファイル、todoの更新、他。
* [8.0.1665](https://github.com/vim/vim/commit/9a993e3c09371bb80d71be62fca53cf954a98f72): GUIの場合は`'term'`オプションの代わりに環境変数`TERM`を参照するようにしました。但し、`TERM`が`"xterm"`で始まらない場合は内部的に`"xterm"`が設定されます。
* [8.0.1662](https://github.com/vim/vim/commit/4a69634b1b55e06c4bf7f05b54125b1669b1c363): `term_dumpdiff()`の出力に双方のファイル名を表示するようにしました。
* [8.0.1660](https://github.com/vim/vim/commit/333b80acf3a44e462456e6d5730e47ffa449c83d): terminal APIの`drop`コマンドにオプションを実装しました。(`:h terminal-api`) (関連patch: [8.0.1641](https://github.com/vim/vim/commit/8fbaeb195d9298c3a2a80300b5f96f1adddd2f59))
* [8.0.1659](https://github.com/vim/vim/commit/1f8495cf48888ff3a8ab3d0eb22db92389191a60): 一部のxtermエミュレータで使用されているマウスコード0x40と0x41をスクロールイベントとして認識するようにしました。
* [8.0.1657](https://github.com/vim/vim/commit/9af9778209cd0cbb284f6ff7e88f707418089975): channelの読み込みをおこなった際にクラッシュする場合がある件を修正しました。
* [8.0.1656](https://github.com/vim/vim/commit/8b31a6ff7a0a8184ddc9997a0cc4aa5f2350b279): :four_leaf_clover:`xxd`の引数に`-C`を追加しました。`-i`指定時の出力変数名が大文字になります。(関連patch: [8.0.1658](https://github.com/vim/vim/commit/79cf7c0d4574f15cfad5ad706f175e226c528f2a))

---
#### 凡例

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