From 14e5f376905a79d098fee705b36c157d53a7942f Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Tue, 13 Sep 2016 11:29:46 +0900 Subject: [PATCH 1/7] add new post --- _posts/blog/2016-09-13-vim8-release.md | 121 +++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 _posts/blog/2016-09-13-vim8-release.md diff --git a/_posts/blog/2016-09-13-vim8-release.md b/_posts/blog/2016-09-13-vim8-release.md new file mode 100644 index 00000000..2ee95324 --- /dev/null +++ b/_posts/blog/2016-09-13-vim8-release.md @@ -0,0 +1,121 @@ +--- +layout: blog +category: blog +title: Vim 8.0 released + +--- +昨日 9/13、前バージョンから10年の歳月を経て Vim の最新版である Vim 8.0 がリリースされました。 + +Vim 8.0 の大きな変更点としては、まず多くのバグ修正が上げられます。7.4 に存在した数多くの問題が修正されています。 + +また以下の素晴らしい機能拡張も行われました。 + +## チャネルによる非同期 I/O のサポート (Channel) + +バックグラウンドプロセスと非同期にメッセージを交換できる仕組みを実装しました。JSON で通信するサーバと対話する事も出来ます。 + +詳しくは `:help channel` を参照して下さい。 + +## ジョブ (Job) + +これまで外部コマンドを実行する際にブロックしていましたが、ジョブ機能の追加により非同期にコマンドを実行する事ができる様になりました。また channel 機能を使って標準入出力を経由し、非同期にメッセージを交換できます。 + +詳しくは `:help job` を参照して下さい。 + +## タイマー (Timer) + +非同期にタイマーを実行できます。 + +```vim +let tempTimer = timer_start(4000, 'CheckTemp') +``` + +この例では 4000 ミリ秒毎に CheckTemp 関数が実行されます。 + +詳しくは `:help timer` を参照して下さい。 + +## パーシャル (Partial) + +Vim には元々、関数リファレンスが実装されていますが、引数および辞書を保持した状態で関数を参照できます。 + +上記のタイマーの例を使う場合、下記のコードでは CheckTemp 関数の第一引数に任意の引数を割り当てられます。 + +```vim +let tempTimer = timer_start(4000, function('CheckTemp', ['out'])) +``` + +詳しくは `:help Partial` を参照して下さい。 + +## ラムダ (Lambda)、クロージャ (Closure) + +これまで sort 関数や filter 関数に関数を指定したい場合は、別途名前付きの関数を用意しなければなりませんでしたが、Lambda を指定できる様になりました。 + +```vim +call filter(mylist, {idx, val -> val > 20}) +``` + +また Lambda ではスコープ内変数が参照できるので Closure として振る舞えます。 + +```vim +function Foo(arg) + let i = 3 + return {x -> x + i - a:arg} +endfunction +let Bar = Foo(4) +echo Bar(6) +``` + +詳しくは `:help lambda` および `:help closure` を参照して下さい。 + +## パッケージ (Packages) + +近年では多くの Vim プラグインがディレクトリ単位で配布されているため、簡単に追加と削除が行える仕組みが追加されました。 + +詳しくは `:help packages` を参照して下さい。 + +## 新しいスタイルのテスト (New Style Tests) + +これは Vim 開発者の為の機能ですが、これまでは体系だったテストフレームワークが提供されてこなかった為に可読性の低いテストが行われてきました。Vim 8.0 では テスト専用の API が用意され、より可読性の高いテストが実施されます。 + +詳しくは `:help test-functions` を参照して下さい。 + +## ウィンドウID (Window IDs) + +これまでのウィンドウ管理は、オープンしたりクローズしたり、移動を行うと番号が変更される数値の体系で管理されてきました。新しい API によりユニークなIDが付与される様になります。 + +詳しくは `:help win_getid()` および `:help win_id2win()` を参照して下さい。 + +## タイムスタンプを使用した Viminfo (Viminfo uses timestamp) + +これまでの viminfo は最終の変更のみが書き込まれていましたが、タイムスタンプを用いて直近の幾らかのアイテムが保存される様になりました。 + +詳しくは `:help viminfo-timestamp` を参照して下さい。 + +## インデントを付けて折り返し (Wrapping lines with indent) + +`breakindent` オプションにより折り返された行にインデントが付けられる様になりました。 + +詳しくは `:help breakindent` を参照して下さい。 + + +## Windows での DirectX サポート (Windows: DirectX support) + +`renderoptions` オプションが追加され、DirectX (DirectWrite) により文字が描画できる様になりました。 + +詳しくは `:help renderoptions` を参照して下さい。 + +## GTK+ 3 サポート (GTK+ 3 support) + +挙動の異なりにより多くの技術的な障壁がありましたが、GTK+ 3 での動作が GTK+ 2 同等となりました。configure を実行時に GTK+ 2 と GTK+ 3 が両方入っている場合には未だ GTK+ 2 が選択されます。詳しくは src/Makefile を参照して下さい。 + +その他の詳細は `:help gui-x11-compiling` を参照して下さい。 + +## ビジュアル選択時の CTRL-A/CTRL-X + +こちらは vim-jp の記事を参照して下さい。 + +[Visual モード時の CTRL-A/CTRL-X について](http://vim-jp.org/blog/2015/06/30/visual-ctrl-a-ctrl-x.html) + +その他、数えきれないほどのバグが修正されています。vim-dev で活躍する開発者の方々に感謝します。 + +Happy Vim Life From cc5581c34d537ed451f81f55888b1acfe06b6f5a Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Tue, 13 Sep 2016 11:42:27 +0900 Subject: [PATCH 2/7] =?UTF-8?q?=E3=82=B3=E3=83=A1=E3=83=B3=E3=83=88?= =?UTF-8?q?=E5=8F=8D=E6=98=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _posts/blog/2016-09-13-vim8-release.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/_posts/blog/2016-09-13-vim8-release.md b/_posts/blog/2016-09-13-vim8-release.md index 2ee95324..3356ba98 100644 --- a/_posts/blog/2016-09-13-vim8-release.md +++ b/_posts/blog/2016-09-13-vim8-release.md @@ -4,7 +4,7 @@ category: blog title: Vim 8.0 released --- -昨日 9/13、前バージョンから10年の歳月を経て Vim の最新版である Vim 8.0 がリリースされました。 +9/13、前バージョンから10年の歳月を経て Vim の最新版である Vim 8.0 がリリースされました。 Vim 8.0 の大きな変更点としては、まず多くのバグ修正が上げられます。7.4 に存在した数多くの問題が修正されています。 @@ -12,7 +12,7 @@ Vim 8.0 の大きな変更点としては、まず多くのバグ修正が上げ ## チャネルによる非同期 I/O のサポート (Channel) -バックグラウンドプロセスと非同期にメッセージを交換できる仕組みを実装しました。JSON で通信するサーバと対話する事も出来ます。 +バックグラウンドプロセスと非同期にメッセージを交換できる仕組みが実装されました。JSON で通信するサーバと対話する事も出来ます。 詳しくは `:help channel` を参照して下さい。 @@ -36,7 +36,7 @@ let tempTimer = timer_start(4000, 'CheckTemp') ## パーシャル (Partial) -Vim には元々、関数リファレンスが実装されていますが、引数および辞書を保持した状態で関数を参照できます。 +Vim には元々、関数リファレンスが実装されていますが、引数の一部またはself辞書を保持した状態で関数を参照できます。 上記のタイマーの例を使う場合、下記のコードでは CheckTemp 関数の第一引数に任意の引数を割り当てられます。 @@ -48,7 +48,7 @@ let tempTimer = timer_start(4000, function('CheckTemp', ['out'])) ## ラムダ (Lambda)、クロージャ (Closure) -これまで sort 関数や filter 関数に関数を指定したい場合は、別途名前付きの関数を用意しなければなりませんでしたが、Lambda を指定できる様になりました。 +これまで sort に比較関数を指定したり filter に適用関数に指定する場合は、別途名前付きの関数を用意しなければなりませんでしたが、Lambda を指定できる様になりました。 ```vim call filter(mylist, {idx, val -> val > 20}) @@ -97,7 +97,6 @@ echo Bar(6) 詳しくは `:help breakindent` を参照して下さい。 - ## Windows での DirectX サポート (Windows: DirectX support) `renderoptions` オプションが追加され、DirectX (DirectWrite) により文字が描画できる様になりました。 @@ -116,6 +115,8 @@ echo Bar(6) [Visual モード時の CTRL-A/CTRL-X について](http://vim-jp.org/blog/2015/06/30/visual-ctrl-a-ctrl-x.html) -その他、数えきれないほどのバグが修正されています。vim-dev で活躍する開発者の方々に感謝します。 +その他、数えきれないほどのバグが修正されています。vim-jp からも多くのコントリビュータが誕生しました。vim-dev で活躍する開発者の方々に感謝します。 + +ぜひ新しくなった Vim を試してみて下さい。そして何か問題を見つけたらぜひ vim-jp に[報告](https://github.com/vim-jp/issues)頂き、一緒に Vim を良くして行きましょう。 Happy Vim Life From abe067522fc6100537e616143f0192e65ba86fdf Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Tue, 13 Sep 2016 11:47:48 +0900 Subject: [PATCH 3/7] =?UTF-8?q?timer=5Fstart=20=E3=81=AE=E7=AC=AC3?= =?UTF-8?q?=E5=BC=95=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _posts/blog/2016-09-13-vim8-release.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/_posts/blog/2016-09-13-vim8-release.md b/_posts/blog/2016-09-13-vim8-release.md index 3356ba98..fe1fb5f1 100644 --- a/_posts/blog/2016-09-13-vim8-release.md +++ b/_posts/blog/2016-09-13-vim8-release.md @@ -30,7 +30,13 @@ Vim 8.0 の大きな変更点としては、まず多くのバグ修正が上げ let tempTimer = timer_start(4000, 'CheckTemp') ``` -この例では 4000 ミリ秒毎に CheckTemp 関数が実行されます。 +この例では 4000 ミリ秒後に CheckTemp 関数が実行されます。繰り返し実行する場合には、第3引数に repeat オプションを付与します。 + +```vim +let tempTimer = timer_start(4000, 'CheckTemp', {'repeat': -1}) +``` + +repeat に3を指定すると3回実行され、-1 を指定すると永遠に実行されます。 詳しくは `:help timer` を参照して下さい。 From c20370bf371363a820a000a7621779783e5b098c Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Tue, 13 Sep 2016 12:06:14 +0900 Subject: [PATCH 4/7] defaults.vim --- _posts/blog/2016-09-13-vim8-release.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/_posts/blog/2016-09-13-vim8-release.md b/_posts/blog/2016-09-13-vim8-release.md index fe1fb5f1..3a992061 100644 --- a/_posts/blog/2016-09-13-vim8-release.md +++ b/_posts/blog/2016-09-13-vim8-release.md @@ -121,8 +121,20 @@ echo Bar(6) [Visual モード時の CTRL-A/CTRL-X について](http://vim-jp.org/blog/2015/06/30/visual-ctrl-a-ctrl-x.html) +## defaults.vim + +Vim のオプションの幾らかには多くのユーザが期待しない規定値が使われてきました。`nocompatible` オプションを含む新しいユーザにとって親切な規定値が defaults.vim としてロードされます。 + +この規定値を無効にするには vimrc に以下を追加して下さい。 + +``` +let g:skip_defaults_vim = 1 +``` + +どのオプションの規定値が変更されたかについては patch 7.4.2111 の内容を参照するか、defaults.vim のスクリプトの中身を参照して下さい。 + その他、数えきれないほどのバグが修正されています。vim-jp からも多くのコントリビュータが誕生しました。vim-dev で活躍する開発者の方々に感謝します。 ぜひ新しくなった Vim を試してみて下さい。そして何か問題を見つけたらぜひ vim-jp に[報告](https://github.com/vim-jp/issues)頂き、一緒に Vim を良くして行きましょう。 -Happy Vim Life +Happy Vim Life! From 33198d061c2554c6104293e72b18cbeb91b7dcb1 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Tue, 13 Sep 2016 12:10:15 +0900 Subject: [PATCH 5/7] =?UTF-8?q?=E3=83=90=E3=83=BC=E3=82=B8=E3=83=A7?= =?UTF-8?q?=E3=83=B3=E8=A1=A8=E8=A8=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _posts/blog/2016-09-13-vim8-release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/blog/2016-09-13-vim8-release.md b/_posts/blog/2016-09-13-vim8-release.md index 3a992061..4da221fe 100644 --- a/_posts/blog/2016-09-13-vim8-release.md +++ b/_posts/blog/2016-09-13-vim8-release.md @@ -4,7 +4,7 @@ category: blog title: Vim 8.0 released --- -9/13、前バージョンから10年の歳月を経て Vim の最新版である Vim 8.0 がリリースされました。 +9/13、前メジャーバージョンから10年、Vim 7.4 からは3年の歳月を経て Vim の最新版である Vim 8.0 がリリースされました。 Vim 8.0 の大きな変更点としては、まず多くのバグ修正が上げられます。7.4 に存在した数多くの問題が修正されています。 From cfc09daee1b7b33cd67f0d7edf0573287f032c71 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Tue, 13 Sep 2016 12:11:03 +0900 Subject: [PATCH 6/7] 2016-09-13 --- _posts/blog/2016-09-13-vim8-release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/blog/2016-09-13-vim8-release.md b/_posts/blog/2016-09-13-vim8-release.md index 4da221fe..e53370d9 100644 --- a/_posts/blog/2016-09-13-vim8-release.md +++ b/_posts/blog/2016-09-13-vim8-release.md @@ -4,7 +4,7 @@ category: blog title: Vim 8.0 released --- -9/13、前メジャーバージョンから10年、Vim 7.4 からは3年の歳月を経て Vim の最新版である Vim 8.0 がリリースされました。 +2016-09-13、前メジャーバージョンから10年、Vim 7.4 からは3年の歳月を経て Vim の最新版である Vim 8.0 がリリースされました。 Vim 8.0 の大きな変更点としては、まず多くのバグ修正が上げられます。7.4 に存在した数多くの問題が修正されています。 From d0e8707d2e68c8967f5640e9bfe0e8e415c58d9a Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Tue, 13 Sep 2016 12:14:27 +0900 Subject: [PATCH 7/7] =?UTF-8?q?skip=5Fdefaults=5Fvim=20=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _posts/blog/2016-09-13-vim8-release.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/_posts/blog/2016-09-13-vim8-release.md b/_posts/blog/2016-09-13-vim8-release.md index e53370d9..f3369b78 100644 --- a/_posts/blog/2016-09-13-vim8-release.md +++ b/_posts/blog/2016-09-13-vim8-release.md @@ -125,12 +125,6 @@ echo Bar(6) Vim のオプションの幾らかには多くのユーザが期待しない規定値が使われてきました。`nocompatible` オプションを含む新しいユーザにとって親切な規定値が defaults.vim としてロードされます。 -この規定値を無効にするには vimrc に以下を追加して下さい。 - -``` -let g:skip_defaults_vim = 1 -``` - どのオプションの規定値が変更されたかについては patch 7.4.2111 の内容を参照するか、defaults.vim のスクリプトの中身を参照して下さい。 その他、数えきれないほどのバグが修正されています。vim-jp からも多くのコントリビュータが誕生しました。vim-dev で活躍する開発者の方々に感謝します。