VimConf 2016に参加してきた
5年もブログ書いてなかった。VimConf 2016に参加してきました。
各発表の雑な感想
内容や詳細は他の人のレポートなど見てもらうとして、個人的な感想を書き留めておきます。
Introduction to Vim 8.0
vim-jpの活動は本当に素晴らしく、以前に自分がTwitterで「これはバグかな?」という類の内容をつぶやいたところ、「既にパッチができているのでIssue登録してね」というリプライがあり、速攻で修正が本家に取り込まれました。
Vimで:tabnや:tabeは、:$tabnで最後尾にタブ開くとかできるけど、:tabは$を取れなくて、:9999tabとかしないとダメなのはバグと言えるのか問題。
— つっきー (@tsukkee) July 27, 2016
@tsukkee じ、実はもうpatch完成しているんです👍。お手数ですがvim-jp/issuesに登録して頂けませんか?
— h_east (トロッコ6個) (@h_east) August 16, 2016
Vim 7.4の2300以上あるパッチのうちの一つがこれなわけで、つまり、バグっぽい挙動を呟くことでVim 8.0に超々微力ながら貢献できました。なので、皆さんも気軽にバグ報告していきましょう。以下のようなありがたいお言葉もありました。
vim-jp が上手く機能したのはバグを直して欲しい人とコントリビュートしたい人の間でグルーになった事だよね。バグ報告あっての vim-jp です。 #vimconf2016
— ミスター 松茸ご飯 (@mattn_jp) November 5, 2016
あと、Vimは25周年なんだけど、何人かの人が「あ、Vimより年下だ!」というTweetをしていて、ジェネレーションギャップを感じました笑。
Vim as the MAIN text editor
VSCode + Vim ExtensionからVim本家に来た、という珍しい?パターンの紹介。世の中に新しいIDEやエディタが登場すると、どこからともなくVimmerが現れてVim風操作にする拡張が作成されるわけですが、それがVim本家への導線としても機能している点が新鮮でした。
Denite.nvim ~The next generation of unite~
最近のShougoさん作のプラグインがだいたいPython3ということで、自分が昔作っていたlingr.vimをちょっと思い出しました。
vim pluginのためにpythonを学ぶのはこの業界では最も一般的なルート #vimconf2016
— ujm (@ujm) November 5, 2016
ただ、個人的には就職してからは開発環境やフレームワークを整えて他の多くの人に使ってもらうことが多く、そうなると必然的にVimではない普通のIDEで環境作る→勧めるためには自分も使い込み慣れる→同じことをもう一回Vimでやるのがだるい、ということで、Vimでガシガシ開発することが少なくなっています。なので、Vimはちょっとしたテキスト編集がメインの用途となり、むしろシンプルに保つ方が良いので、Shougoさんが作るような大型プラグインは使わなくなりつつあります。
Go、C、Pythonのためのdeoplete.nvimのソースの紹介と、Neovim専用にpure Goでvim-goをスクラッチした話
deopleteはPythonで補完ソースを増やせ、かつ、補完も非常に早いとのことで、機会があれば試してみたいです(上記のとおり、最近機会が減少傾向ですが…)。
エディタの壁を越えるGoの開発ツールの文化と作成法
Goは依存性なしの実行ファイルをクロスプラットフォームで作成できる、ということで、Vimのjob/channel機能と非常に相性が良さそうだと思いました。これまでは、外部プログラムに依存するVimプラグインは敬遠され、pure Vim scriptであることが有難がられる風潮が一部ではありました(ような気がしています)。Goなら主要プラットフォーム向けにビルドした実行ファイルをGitHubのReleaseにでも置いておけば良さそうなので、遅い箇所はGoで、UIはVim scriptで、その間をjob/channelで繋ぐプラグインが増えてきても良さそうです。
vim-mode-plus for Atom editor
AtomのVimプラグインを通じて、よりVimへの理解が深まったとのこと。紹介されていたような概念はVimをずっと使って理解が深まってくるとある程度たどり着ける内容だとは思いましたが、それがきっちり整理され、さらに実装に活かされているところに深みを感じました。さらに、Practical Vim(実践Vim)も併せて読むと良いと思います。
また、懇親会でt9mdさんとお話させて頂いたのですが、VimのOperatorは一貫性があるような動きをしているように見せかけて、実はtargetがline-wiseかどうかで動きをad-hocに変えている、など泥臭い実装があるらしく、実際に作った人だから分かる素晴らしい知見だと思いました。
あと、周囲へのリスペクトを忘れない姿勢がかっこよかったです。
本家(Vim、Atom、Vim-mode)に対するリスペクトを忘れない姿勢、かっこいい #vimconf2016
— つっきー (@tsukkee) November 5, 2016
Vimの日本語ドキュメント
最も手っ取り早くVimの貢献する方法はこれのような気がしているので、本当は時間を見つけて参加したい…。
また、懇親会では、KoRoNさんのVim論を少し聞けておもしろかったです。(おそらく歴史的経緯で)Vimの内部構造がイケていないことに起因する話をいくつかされていたのですが、それでもVimが発展していっている点は色々と考えさせられます。ついつい、一から作った方が早い論に流されがちですが、既存のものを良く理解し発展させる方も常に考えたいと思いました。
Vim script parser written in Go
最近Vim界隈では、画期的なプラグインができた!というより、この手の周辺ツールを固めていく話が多い気がしています。Vim 8.0でのVim script強化と併せて、ある意味今はVim界隈全体として、基礎固めの時期なのかなと感じました。今後、これらをもとにしたすごいプラグインが出てくるといいですね!(おまえがやれという話ですが…)
僕の友達を紹介するよ
今回は、Vimプラグインにフォーカスした発表が少なかったので、おすすめをまとめて教えてくれる発表は価値があると思いました。
Best practices for building Vim plugins
thincaさんがこれまで感じた辛さをまとめたような発表でした笑 このあたりのベストプラクティスこそ、Vim本体のhelpに入っても良さそうなものですが、そのあたりどうなんでしょう?
全体を通して
Vim関係の勉強会は出られるものはできるだけ出るようにしているけど、ここ何年も毎回進捗がなく、自分が発表できるネタがないのがちょっとつらい。Vimどうこうより、家族(妻、子ども)と過ごす時間、仕事の時間、それ以外の時間、をうまくやりくりしてVim含めたプライベートな活動をどう進めて行くかが個人的な大きな課題。がんばろう。
2016/11/07 00:52 | Vim | トラックバック(0) | コメント(0)
コメントの投稿
トラックバック
トラックバックURL
→http://relaxedcolumn.blog8.fc2.com/tb.php/171-e7004294
コメント