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

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

* [runtimeファイル更新](https://github.com/vim/vim/commit/7dd64a3e57d296fdee3b3ffe6d938f634b59848c): [Todo](https://github.com/vim/vim/commit/7dd64a3e57d296fdee3b3ffe6d938f634b59848c#diff-38d7929bd26d74d92ceddf984bbfc8db)更新。helpファイル更新。他。
* [8.1.1429](https://github.com/vim/vim/commit/ac1f1bc222b7de3cb2d3f1f2aa076f11c75e69de): :four_leaf_clover:ポップアップウィンドウの`pos`オプションを実装しました。あと、`popup_getposition()`を`popup_getpos()`にリネームしました。(関連patch: [8.1.1391](https://github.com/vim/vim/commit/4d784b21d14fc66e98a2b07f70343cdd4acd62aa))
* [8.1.1428](https://github.com/vim/vim/commit/cc31ad9f9b601d53926b96586bd6b40602d57951): :four_leaf_clover:`popup_atcursor()`を追加しました。カーソルの上にポップアップウィンドウを表示し、カーソルが移動したら閉じます。(関連patch: [8.1.1391](https://github.com/vim/vim/commit/4d784b21d14fc66e98a2b07f70343cdd4acd62aa))
* [8.1.1422](https://github.com/vim/vim/commit/8c2a600f72ca930841a5f4f7eac22884238afaf3): :four_leaf_clover:`popup_getoptions()`を追加しました。指定ポップアップidのオプション値を辞書で返します。(関連patch: [8.1.1391](https://github.com/vim/vim/commit/4d784b21d14fc66e98a2b07f70343cdd4acd62aa))
* [8.1.1418](https://github.com/vim/vim/commit/868b7b6712ea4f2232eeeae18c5cbbbddf2ee84d): :four_leaf_clover:`win_execute()`を追加しました。`execute()`と似ていますが、引数で指定されたウィンドウid のコンテキスト内で実行します。(関連patch: [8.1.1425](https://github.com/vim/vim/commit/89adc3a1371d211f7766f3dbc0975ecb2f862327), [8.1.1433](https://github.com/vim/vim/commit/eea169983654de8a502c2c6521696a4b504abfa3))
* [8.1.1416](https://github.com/vim/vim/commit/bc133543b8b0ebb1d8624e37d840b739eb00f3f3): :four_leaf_clover:`popup_getposition()`を追加しました。(関連patch: [8.1.1391](https://github.com/vim/vim/commit/4d784b21d14fc66e98a2b07f70343cdd4acd62aa))
* [8.1.1410](https://github.com/vim/vim/commit/60cdb3004abe683e5e8851fa6c5d67b337df4443): :four_leaf_clover:`popup_move()`を追加しました。(関連patch: [8.1.1391](https://github.com/vim/vim/commit/4d784b21d14fc66e98a2b07f70343cdd4acd62aa))
* [8.1.1406](https://github.com/vim/vim/commit/2cd0dce898995a2b05f7285a70efec3f67f579f5): :four_leaf_clover:`popup_hide()`と`popup_show()`を追加しました。(関連patch: [8.1.1391](https://github.com/vim/vim/commit/4d784b21d14fc66e98a2b07f70343cdd4acd62aa))
* [runtimeファイル更新](https://github.com/vim/vim/commit/68e6560b84f196c82e27a72669684d5506a3a837): [Todo](https://github.com/vim/vim/commit/68e6560b84f196c82e27a72669684d5506a3a837#diff-38d7929bd26d74d92ceddf984bbfc8db)更新。helpファイル更新。他。
* [8.1.1391](https://github.com/vim/vim/commit/4d784b21d14fc66e98a2b07f70343cdd4acd62aa): :four_leaf_clover:ポップアップウィンドウの初期実装コードを追加しました。`popup_create()`, `popup_close()`, `:popupclear`および`'wincolor'`を追加しました。(関連patch: [8.1.1329](https://github.com/vim/vim/commit/957f85d54ebd5a3bd0d930de9603190f0876f977), [8.1.1396](https://github.com/vim/vim/commit/193ffd1d9f4f4d5412ce8d7a46bb2f89d47a56da), [8.1.1399](https://github.com/vim/vim/commit/ec58384afa0dc1678afd7b8d19b4645ac2f73f42), [8.1.1402](https://github.com/vim/vim/commit/51fe3b14f63da2b985bcd7b4c50fbe34ae84ea48), [8.1.1405](https://github.com/vim/vim/commit/20c023aee0ceafac9431fb8ab8d169747b5140dd), [8.1.1406](https://github.com/vim/vim/commit/2cd0dce898995a2b05f7285a70efec3f67f579f5), [8.1.1407](https://github.com/vim/vim/commit/7a8d0278bd6bd57e04f61183cb8e2969cf148e3f), [8.1.1410](https://github.com/vim/vim/commit/60cdb3004abe683e5e8851fa6c5d67b337df4443), [8.1.1416](https://github.com/vim/vim/commit/bc133543b8b0ebb1d8624e37d840b739eb00f3f3), [8.1.1420](https://github.com/vim/vim/commit/88c4e1f06905983870175a473683e81312d14c64), [8.1.1421](https://github.com/vim/vim/commit/1714696600f2859f897f4ffb33cedb5de09eded3), [8.1.1422](https://github.com/vim/vim/commit/8c2a600f72ca930841a5f4f7eac22884238afaf3), [8.1.1423](https://github.com/vim/vim/commit/cacc6a5c986fbc716bf53b6916f076dd7b388142), [8.1.1424](https://github.com/vim/vim/commit/5c3fb04623d0260762f1c3c1ba250a407098ff2a), [8.1.1426](https://github.com/vim/vim/commit/b42301247d85d60b64c2cc23f5cdf30da2342827), [8.1.1427](https://github.com/vim/vim/commit/54fabd4b5e373c7f1d794d24d27a30a8bac84da1), [8.1.1428](https://github.com/vim/vim/commit/cc31ad9f9b601d53926b96586bd6b40602d57951), [8.1.1429](https://github.com/vim/vim/commit/ac1f1bc222b7de3cb2d3f1f2aa076f11c75e69de), [8.1.1430](https://github.com/vim/vim/commit/402502d0e4019ca97330eff40b9fb13736304896), [8.1.1431](https://github.com/vim/vim/commit/c6896e20f8e7e8d9fe0fd1ad333aae1130d714e1))
* [8.1.1370](https://github.com/vim/vim/commit/05b8b07e2770b66ab77fdb5e195cae809959bdab): :four_leaf_clover:[VimのGitHubページ](https://github.com/vim/vim)に「:heart: Sponsor」ボタンを追加しました。皆さん、寄付をお願いします:bow:
* [8.1.1366](https://github.com/vim/vim/commit/110289e78195b6d01e1e6ad26ad450de476d41c1): :four_leaf_clover:[モードラインを介して任意のコードが実行できてしまう脆弱性](https://github.com/numirias/security/blob/master/doc/2019-06-04_ace-vim-neovim.md)を修正しました。`'modelineexpr'`を追加しました。(関連patch: [8.1.1401](https://github.com/vim/vim/commit/076073950c44ea0e35bc39d539dc7ab41bf9c7ec))
* [8.1.1361](https://github.com/vim/vim/commit/0b0ad35c339b8ad156df493bebeb77e02b32b120): if_python: Python setuptoolsがPython 3で動作しない件を修正しました。(`find_module`のダミー実装を追加しました。)
* [8.1.1354](https://github.com/vim/vim/commit/f5842c5a533346c4ff41ff666e465c85f1de35d5): :four_leaf_clover:`:let`で文字列のリストを設定するための演算子`=<<`を追加しました。{marker} で囲まれたテキストが対象です。(`:h =<<`) ※所謂ヒアドキュメント(のようなもの)です。(関連patch: [8.1.1356](https://github.com/vim/vim/commit/8471e57026714c5a0faf89288ceef5231fb88d4f), [8.1.1585](https://github.com/vim/vim/commit/e7eb92708ec2092a2fc11e78703b5dcf83844412), [8.1.1588](https://github.com/vim/vim/commit/e96a2498f9a2d3e93ac07431f6d4afd77f30afdf), [8.1.1723](https://github.com/vim/vim/commit/24582007294b0db3be9669d3b583ea45fc4f19b8))
* [8.1.1334](https://github.com/vim/vim/commit/eda652215abf696f86b872888945a2d2dd8c7192): :four_leaf_clover:バッファがhiddenの場合、`'shortmess'`の`F`が使われない件を修正しました。あと、test用に`test_getvalue()`を追加しました。内部変数の値を取得します。
* [8.1.1332](https://github.com/vim/vim/commit/fe1ade0a78a70a4c7ddaebb6964497f037f4997a): :four_leaf_clover:`listener_flush()`を追加しました。保留中の変更がある場合、リスナーコールバックを呼び出します。
* [8.1.1329](https://github.com/vim/vim/commit/957f85d54ebd5a3bd0d930de9603190f0876f977): :four_leaf_clover:ポップアップウィンドウのサポートの計画が広がってきました。まずは、ポップアップウィンドウのヘルプの最初のバージョンを追加しました。(`:h popup.txt`) (関連patch: [8.1.1364](https://github.com/vim/vim/commit/5c017b2de28d19dfa4af58b8973e32f31bb1477e), [8.1.1391](https://github.com/vim/vim/commit/4d784b21d14fc66e98a2b07f70343cdd4acd62aa))
* [8.1.1320](https://github.com/vim/vim/commit/6d2399bd1053b367e13cc2b8991d3ff0bf724c7c): :four_leaf_clover:`listener_add()`と`listener_remove()`を追加しました。バッファに変更が加えられたときに呼び出されるコールバックの追加/削除をおこないます。(関連patch: [8.1.1321](https://github.com/vim/vim/commit/a334772967de25764ed7b11d768e8b977818d0c6), [8.1.1326](https://github.com/vim/vim/commit/8aad88d8de256e58f04054eb7230c9613e26502f), [8.1.1328](https://github.com/vim/vim/commit/bc4fd43160739efb93c39589dcc9ffd5d5a951d0), [8.1.1332](https://github.com/vim/vim/commit/fe1ade0a78a70a4c7ddaebb6964497f037f4997a), [8.1.1335](https://github.com/vim/vim/commit/dda4144d39a9d685b8dda830978e7410bd372c40), [8.1.1419](https://github.com/vim/vim/commit/68a4b04a8d2471adf9de595745437c7cf20b98d8))
* [8.1.1315](https://github.com/vim/vim/commit/afd78266c5096574ec057c36fb4a0e56912e9a71): 端末の要求に対する応答が2秒以内に受信できない場合は、要求が失敗したと見なすようにしました。
* [8.1.1310](https://github.com/vim/vim/commit/42ae78cfff171fbd7412306083fe200245d7a7a6): :four_leaf_clover:関数の引数にデフォルト値を指定できるようにしました。関数呼び出し時に省略可能になります。(`h: optional-function-argument`)
* [runtimeファイル更新](https://github.com/vim/vim/commit/a6c27c47ddf081859659d7de1caec675147e466b): [Todo](https://github.com/vim/vim/commit/a6c27c47ddf081859659d7de1caec675147e466b#diff-38d7929bd26d74d92ceddf984bbfc8db)更新。helpファイル更新。他。
* [8.1.1307](https://github.com/vim/vim/commit/d4aa83af1d691fdabbc8e6aab36db2c96ea4d4b6): :four_leaf_clover:`:xrestore`を追加しました。X11サーバーへの接続を再初期化します。
* [8.1.1305](https://github.com/vim/vim/commit/691ddeefb545d8488e5a495af61caba2e57b3de9): :four_leaf_clover:`environ()`, `getenv()`と`setenv()`を追加しました。環境変数の取得および設定が」おこなえます。
* [8.1.1303](https://github.com/vim/vim/commit/be0a2597ae0d9eb0b8a8a2fc9ae1784faa929844): :four_leaf_clover:`balloon_show()`を空の文字列かリストでコールした時バルーンを隠すようにしました。それと、`balloon_gettext()`を追加しました。バルーン内の現在のテキストを返します。
* [8.1.1291](https://github.com/vim/vim/commit/1063f3d2008f22d02ccfa9dab83a23db52febbdc): :four_leaf_clover:`chdir()`を追加しました。作業ディレクトリを指定値に変更し、以前の作業ディレクトリを返します。
* [8.1.1281](https://github.com/vim/vim/commit/8ffc7c8b5f004971cb6f2bdcfbe4f7123cce717c): :four_leaf_clover:`:chistory`と`:lhistory`をカウント指定出来るようにしました。
* [8.1.1280](https://github.com/vim/vim/commit/25c9c680ec4dfbb51f4ef21c3460a48d3c67ffc8): :four_leaf_clover:helpファイルのVimの新機能やViの既存機能に関するすべての情報をvi_diff.txtに移動しました。各helpの備考`{Viにはない}`を削除しました。
* [8.1.1276](https://github.com/vim/vim/commit/de24a8701328b1cce7cad0ee11b415369b482420): :four_leaf_clover:`prop_type_add()`の第2引数`{props}`に`combine`エントリを追加しました。ハイライトを任意の構文ハイライトと結び付けることが出来ます。(関連patch: [8.1.1278](https://github.com/vim/vim/commit/58187f1c8a7095dbe0237a8208fa7f7bc899f246))

* [8.1.1275](https://github.com/vim/vim/commit/cf6a55c4b0cbf38b0c3fbed5ffd9a3fd0d2ede0e): :four_leaf_clover:`:cbefore`, `:cafter`, `:lbefore` と `:lafter`を追加しました。カレントバッファのカーソル桁の前後のquickfix/locationリストの項目へ移動します。(関連patch: [8.1.1256](https://github.com/vim/vim/commit/3ff33114d70fc0f7e9c3187c5fec9028f6499cf3))
* [8.1.1270](https://github.com/vim/vim/commit/9dfa3139198b38b28673e251a3756430065914e9): :four_leaf_clover: `n`コマンドを使用した時、画面最終行に "3/44" のように現在のマッチ位置を表示するようにしました。(`'shortmess'`に`S`が含まれていない場合のみ) (関連patch: [8.1.1283](https://github.com/vim/vim/commit/c7a10b35de70471519d104a74d402c63557f0512), [8.1.1288](https://github.com/vim/vim/commit/9ce3fa828d238ff28d57b0092bb37575e20010ec), [8.1.1289](https://github.com/vim/vim/commit/b6cb26ffe1795ae62d8235960dccf517c2b2ed45), [8.1.1350](https://github.com/vim/vim/commit/dc6855af974f2ef553aceee619fadcb858e25d39))

* [8.1.1262](https://github.com/vim/vim/commit/bb8476be871811e40ddc88c598d9e553aba7fb79): :four_leaf_clover::alien: `test_setmouse()`を追加しました。test用です。
* [8.1.1256](https://github.com/vim/vim/commit/3ff33114d70fc0f7e9c3187c5fec9028f6499cf3): :four_leaf_clover:`:cabove`, `:cbelow`, `:labove` と `:lbelow`を追加しました。カレントバッファのカーソル行の前後のquickfix/locationリストの項目へ移動します。(関連patch: [8.1.1275](https://github.com/vim/vim/commit/cf6a55c4b0cbf38b0c3fbed5ffd9a3fd0d2ede0e))
* [8.1.1242](https://github.com/vim/vim/commit/0fef0aeb1ca6c85df0a656a70b6ca49c34563c89): コマンドラインの高さが  `'cmdheight'` と異なるタブページ切り替え時にコマンドラインが再描画されない件を修正しました。

---
#### 凡例

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