inFablic | Fablic, inc. Developer's Blog.

フリマアプリ フリル (FRIL) を運営する Fablic の公式開発者ブログです。Fablic のデザイナー・エンジニア・ディレクターが情報発信していきます。

今年のVimConfは一味違う!VimConf2017速報

f:id:kazu9su:20171104141230p:plain

こんにちは、サーバーサイドエンジニアのtommyです。

本日は、秋葉原で開催されたVimConf2017の速報をしたいと思います。

FablicとVimConf2017との関わり

今回、FablicはスポンサーとしてVimConfを応援しています。
パンフレットには求人チラシも同梱していました。

他社スポンサーの中の人がこれには勝てないょ…というほどvimmerに対して訴求力の高いものが出来上がりました。 また、会場の同時通訳は @ujm と奥さんの @sandkattさんによって行われていました。

翻訳は非常に好評のようでした。 ちなみに、翻訳で度々登場した「アレ」「ヤバイ」「こいつら」「優勝」などの単語はFablicでは日常語として使用されています。

Vim, Me and Community

さて、宣伝もほどほどに早速セッションのレポートに移っていこうと思います。
@haya14busa さんは最初にコントリビュートを始めたのは大学生の頃とのこと。
「最初は全くわからなかったけれども、一つ一つのバグレポートを見ていたら、こうしたらいいんじゃない?というのが見えてきた」(若干うろ覚え)という言葉が印象的でした。
現在はGoogleでSoftwareEngineerをされているということで、一つ一つの積み重ねがキャリアにも繋がっていくのだなという非常にいい話でした。 様々なライブラリの作者の方とコミュニケーションを取ってeasymotionを改良している点や、goで実装を書き直してみたというところがいい話ポイントでした。

The Past and Future of Vim-go

次に@fatih さんによるvim-goの発表がありました。
翌日曜日にはGoCon*1が行われ、それにも出席される@fatihさんですが、@ujmによれば@fatihさんはVimConf2017に参加するために来日し、それに合わせてGoConでも話してもらいたかったためGoConは日曜日に開催されることになったとのことです。
goとvimとの関わりはgoのsyntaxを追加するというところからはじまり、さまざまなプラグインが作られるようになったとのこと。
しかし、開発がそれぞれ独自に行われていく中で、

  • 多すぎるライブラリ
  • ロードマップがない
  • ドキュメントがない などの問題が浮上し、それを解決するためにvim-go(最初はgo.vim?)のプラグインを作り始めたとのことです。

ドキュメントを書くつらさはOSS開発者共通の悩みなのかなと思ったりしました。 また、vim-goがやばいので、彼に寄付したいという人がめっちゃいたがあんまりお金はいいかなと思ったため、最初はkindle wish listを公開し、本を購入してもらっていたが50冊を超え読みきれなくなったので、patreon*2 を使って寄付を受け取るようになったとのこと。
今では 200$/月の寄付をもらっており、それによって恩恵もあるので、積極的に寄付は受けるべきだという主張が印象的でした。

goを書くエディタとしては、vimが一番人気らしいです。

この発表を聞くだけでgoを使ってみたいという人も現れるなど、その完成度の高さが見て取れますね。

@fatihさんがとても楽しそうに発表しているのも印象的なセッションでした。

お弁当

お弁当にはすき焼きと白い恋人(1枚)が提供されました。

あまりもあるのでおかわりもでき、とても充実した昼食でした。

Talk show

mattnさん、k_takataさん、kaoriyaさんによるトークが行われました。 ちなみにmattnさんの読み方はマットンでもマッタンでもなくマッツンとのことです。 mattnさんはvim2.0から、k_takataさんはvim5.7からvimに関わり始めたとのこと。
みなさんwindowsユーザらしく、windowsに関する思い入れがとても強そうでした。
vim8.0の新機能のうち、terminalはwindowsユーザにとって非常に強力なものとのことです。

Creating your lovely color scheme

カラースキーマの作り方についての発表でした。 カラースキーマを作る際には、

  • カラーパレットを最初に作る
  • コンセプトを決める
  • 色相のみ変えて彩度と明るさは変えない などのポイントを押さえておくと便利です。

例として、氷山をイメージしてカラースキーマを作る過程が紹介されました。
プレゼン資料も非常におしゃれでとてもいい感じでした。
colorswat.ch, 配色すごく好みだったんでチェックしてみます!

vim-mode-plus: The most ambitious vim emulator in the world

atomのVimModePlus(vmp)というプラグインについての発表でした。
ワタクシはatomに触れたことが全く無いので若干ついていけませんでしたが、めちゃくちゃ便利であるということは伝わってきました。
また、デモがすごくよくて、かつ聞きやすい英語で話されていたので、是非セッションを聞いてみることをおすすめします。

最後に、便利機能を使いこなすためには練習あるのみとのことでした。練習しましょう。

Vim and Compatibility

サイボウズLiveが終了した理由。そんな導入から始まった話は、POSIX原理主義の話へと移行していきました。

様々な環境に移植できることを前提に.vimrcを作る。という(ざっくりまとめると)お話でした。

議論を呼びつつ、vimの歴史の話、各OSのデフォルトVimのバージョン、サポートはいつまでか、文字コード。
様々な考慮すべき点を網羅して「どんな環境でも動く」目標を達成するのはとても難易度が高いなあと感じました。

最終的に思考停止された方も多かったようです。
考慮すべき点が多いのと、文字コード問題の根が深すぎるという問題があるようです。

neosnippet.vim + deoppet.nvim

暗黒美夢王ことshougoさんの発表です。
shougoさんのアイコンがしまうまではなく竜騎士の兜がモチーフであることは前回のfablic.vimでも言及されておりましたが、
暗黒美夢王の発音について、ご存知の方はどのくらいいるでしょうか?

そう、アンコックビムオーです。正しい読み方を知ることは重要ですね。

なお、今回は歌は歌わないそうです。

まず、shougoさんがこれまでに作ってきたdark powered pluginの紹介があり、話はneosnippetの話に。 snippetとは、 () などを自動補完して、カーソルを移動してくれるという超便利機能です。 

その当時、snippetが流行っていたらしく、なぜ流行っているのかがわからなかったとのこと。
そこから「よし、作ってみよう」というところに行くつくのはやはり、すごいなと思わざるを得ません。
ただVim scriptによるVim scriptのパースが遅いなどの問題があるため、deoppetを開発中とのこと。
ここでデモもありましたが、他のプラグインの開発も忙しくまだ使える状態にはないとのことでした。
開発してくれる人も募集中らしいので、ぜひ手を上げてみたいものですね。

How ordinary Vim user contributed to Vim

このVimConfに参加している方々はみんなVimにコントリビュートしてみたい人たちだと思います。
そんな一言から始まり、パッチを送るためにはどうすればいいかという話になりました。

やる気があればなんでもできますよね。まず必要なのは絶対にパッチを送るという強い決意です。
けっこう難しいですよね。

そんな@dice_zu さんは普段は運用でカバーする派とのこと

運用でカバーに関しては、熱い共感が寄せられていました。

それから具体的にどういうパッチを送ったのかという話をされていました。
具体的な話を見ると確かに小さな問題にフォーカスすればできそうな気もしますが、話を聞くのとやるのは全く違うもの。

パッチを送るにはまずバグフィックスがよいとのこと。
なかなかバグなんて見つからないという場合にも、毎日vimをビルドしていると結構見つかるとのこと。
また、職場でのvim talkも非常に大切であるとのことでした。
この点、Fablicに入社すれば、 @ujm と毎日のようにvim talkをすることができるのでとても便利です。
個人的にはこの後次回のfablic.vimまでの間に何かしらのプラグインに対してテスト追加などのコントリビュートしたいなと思っております。

The new syntax highlighter for Vim

ほっこりするプラグインの紹介から始まりました。syntaxハイライトのお話でした。 vimのシンタックスハイライトは、すごい長い行を読み込むときに途中で諦めます。 synmaxcolという設定をしておくとそれ以降無視するような挙動をします。 ログファイルの1行のめちゃくちゃ長いjsonなどだと途中からシンタックスを諦めたりするとのことです。

シンタックスハイライト機能の実装は、正規表現でやろうと考えがちですが、重要な問題があります。 正規表現は人類には早すぎるという問題です。

例えば p(?? ? ?: : ??) のようなruby codeのシンタックスハイライトは正規表現でやるととても難しいとのこと。

そこでpockeさん作のiro.bimでは、正規表現の代わりに言語に実装されたparserを使っているとのこと。 完璧なシンタックスハイライトを実現しています。

You've been Super Viman. After this talk, you could say you are Super Viman 2 -- Life with gina.vim

この発表はVimmer, Viman, SuperVimanのための発表であり、SuperViman2, SuperViman3, SuperVimanGod向けではありません。 人間は忘れる生き物です。 みなさんは、先週の日曜日のランチ、会議で決まったこと、自分の子供の誕生日を覚えていますか?
これらはランチ以外覚えておかなくてはいけないことですが、それは難しいことです。Gina.vimを使えば、覚えることを減らすことができます。

Ginaの紹介が行われていきます。
便利機能が次々と紹介されました。すごい便利そうでした。 fixpoint社の紹介も行われていました。フリードリンク、フリーフード?とてもよさそうでした。 弊社でも取り入れてくれないかな(|д゚)チラッという機運を感じます。

まとめ

これから懇親会があって終了となります。 @ujmさん翻訳お疲れ様です。また、スタッフの皆様もありがとうございました! すごく内容の濃いカンファレンスでした。

現場からは以上です!

参考

daisuzu.hatenablog.com

sssslide.com

speakerdeck.com

speakerdeck.com