先日、
vim-jpがオープンした訳だけど、これの真の意味はバラバラだったユーザや開発者を1ヶ所に集めるのが目的。まぁVim-users.jpもあって良いし、各々でやったらいいと思うけど僕が求めていたのは開発側。
vim-jpを作って良かったと思った。
githubのIssueトラッカーを使ってvim_devにパッチを放流するまでのワークフローが出来上がりつつある。
- 不具合報告
- 皆で再現確認
- 修正方法の提案そして議論
- 修正担当者をアサイン
- パッチを仮で書いて貼り付ける
- レビューしてもらって提出
突然、有識者がパッチ書いてvim_dev投げるとツメも甘かったりしますし、第一に新しい開発メンバが増えない。仕事でも同じだな。不具合が出たら修正者にすぐ直させるものいいんだけど、どう直すのかを予めレクチャーさせると不具合の認識が共有出来る。
後からそういう修正じゃなかったんだけど...って事がなくなる。
とてもいい感じです。
さて、vim-jpが出来てまだ半月しか経ってない。でもvim_devでは日本人が猛威をふるっている。MLの皆が「日本人、突然どうした」と思ってるかもしれない。
では、このIssueトラッカーを使い出してからの成果をご紹介しよう。
補完中に入力文字を変えた場合、補完候補が変わるの可能性があるで補完関数が呼ばれるはずだが呼ばれない。
KoRoNさんがパッチ書いて投稿。素早い。さすがです。7.3.311で取り込まれる。
知る人ぞ知る、いやらしいバグ。コマンドラインからautoloadなスクリプトを呼ぶとコマンドメッセージが1行ずれる。eskk.vim等がそれの影響でひどい動きになっていた。
僕がパッチ書いて投稿。7.3.305で取り込まれる。
verbosefileオプションでファイルを指定すると詳細な情報が出力されるのですが、その際、画面のメッセージ位置とファイル上の書き出し位置を共有しているのが原因で奇妙な見え方になっていた。
僕がパッチ書いて投稿。7.3.308で取り込まれる。
vimscriptは文と文を"|"で繋げられるのだけど
echohl Warnings | echomsg "hello" | echohl NONE
文法的に解析する際、論理和の"|"と勘違いしてしまうので、vimscriptは
if 0
で通らない行についても
仮でで関数を呼び出す。また関数の戻り値がDictの場合
call foo.bar().baz()
みたいな事も出来る。vimscriptの仕様は変態的で、文字列の結合も辞書のメンバ参照も"."なのです。そのせいで無効行内の関数呼び出しは空のDictを返す作りになっています。ただ配列のインデックス指定時の考慮が抜けていた。
call foo.bar["baz"]()
これがエラーになる。
僕がパッチ書いて投稿。ちょっと違うパッチになっちゃったけど7.3.329で取り込まれる。
題名の通り。
KoRoNさんがパッチ書いて投稿。7.3.319で取り込まれる。
vim-jpメンバじゃない人から不具合報告をもらった。どんどん報告して下さい!
実際には既に閉じられたバッファのNULLポインタをデリファレンスしてた。
僕がパッチかいて投稿、7.3.316で取り込まれる。
helpファイルにfoldingがある場合に
:help foo
がfoldを展開しない不具合。
僕がパッチかいて投稿、7.3.327で取り込まれる。
題名の通り。
tyruさんがパッチかいて投稿、7.3.325で取り込まれる。パッチをちょっと書き直されたけど、伝わればok
mingw付属のgccがバージョン4.6になり、-mno-cygwinオプションがobsoluteになったのが原因。
ネオコンやVimShellでおなじみのShougoさんがvim_dev初投稿。みごとマージされ、はれてShougoさんはCONTRIBUTE AUTHORになりました。7.3.326で取り込まれる。
パッチは提供したけど、まだ反応もらってない物もあります。個人的にはNakadairaさんの指摘やパッチ提供が的確過ぎて素晴らしいです。
これ、半月の間に日本人が解決した不具合です。すばらしいですね。
これが僕がやりたかった事だ。どんどんvimが良くなれば、僕もKoRoNさんもNakadairaさんもtyruさんもthincaさんもShougoさんも、そして全ユーザも幸せになれるんです。
vim-jpでは不具合報告をお待ちしております。
あなたもCONTRIBUTE AUTHORになろう。