VimConf2017 行ってきた

Vimmerのお祭りである、VimConfに行ってきました。
http://vimconf.vim-jp.org/2017/

会場は秋葉原駅から徒歩2分のアキバホールで、席には電源完備されていて心置きなくvimができる環境。 スライド、動画が後日公開されるらしい。

感想

  • 便利そうな設定やプラグインについて知れてよかった
  • 以外とwindowユーザ多い
  • 会場がすごい人だらけですごかった
  • どのセッションもすばらしくて非常に濃いカンファレンスでした f:id:replicity:20171106013607j:plain

各セッションの感想とメモは下記。

Vim, Me and Community

https://docs.google.com/presentation/d/14pViuMI_X_PiNwQD8nuGRG72GUqSeKDqoJqjAZWS39U/edit
vimを使い初めてからの話が主で、最後にすこしvimのコミュニティについての話 。
プラグイン開発をどうやって初めて行ったか、何に気をつけて作っているかは興味深い話だった。

The Past and Future of Vim-go

https://speakerdeck.com/farslan/the-past-and-future-of-vim-go
vim-goの作者
vim本体でのgoのサポートが終わったので、vim-goを作った
なんでvim-goが有名になったか

  • 小さいpluginがありすぎていた
  • 他のpluginにロードマップがなかった
  • ドキュメントがない問題を解決した
    • この作業は面白くない
    • markdownサポートのPRをまっている
  • UXを向上していった

どうして必要なのかを説明してとても勉強になった。

Creating your lovely color scheme

カラースキームの話
Icebergの作者
人生の33%はcolor schemeらしい

  1. 最初にコンセプトを決めると、後々役に立つ時がある
  2. 代表的な色を決める
    • preferred groupってやつがあってこれに設定すると他のにも引き継がれる
    • HSB/HSLを使うのがおすすめ
    • カラーパレットを作る時は基準を決めて色相だけを変える
  3. lovelyにする
    • ポジティブを増やす、ネガティブを減らす
    • ポジティブ
      • file typeのサポートを増やす
      • pgment.vim と colorswatch.vimが便利
      • 有名なプラグインに対応していく
      • identitiesを少し足すのもいい
    • ネガティブ
      • 256環境をサポートする
      • 警告色を考える
      • 色覚についても考える
  4. 先人をどこから探すか

color schemeを作る時以外にもプレゼンのデザイン考える時とか参考になりそうな内容だった。

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

https://qiita.com/t9md/items/236d09fea9bcdfabdcea
atomvim-modeを作るプラグインの話。
単純にvim-modeがあるだけじゃなくて、便利な機能が追加されていて、それの紹介もあった。
特にmove-{up|down}-to-edgeが便利そうだった。

Vim and Compatibility

http://lamsh.github.io/slide/2017/20171104_VimConf2017/index.html
POSIX原理主義といろんな環境で動くvimrcを書く方法についての話。
OSと文字コードの対応が特に大変そうな感じで、実際には自分が触る環境は多くても3種類ぐらいなのでその中で動けばいいかなーって感想。

neosnippet.vim + deoppet.nvim

https://www.slideshare.net/Shougo/neosnippetvim-deoppetnvim-in-vim-conf-2017
暗黒美夢王さん!
テキストエディタは世界のすべて」

スニペットプラグインについての話。

  • neosnippet.vim
    • marker type snippet plugin
    • 日本では有名
    • snipMate syntax
  • snopMate.vim
    • 有名
    • 最近は開発が活発ではない
    • マーカータイプではない
  • UltiSnips
    • snipMateとは互換性がない
    • 外国ではおそらく一番有名
    • 多機能
    • マーカータイプではない
    • neovimでは遅い

マーカータイプのスニペットプラグインとは

  • カーソルの移動先にマーカーを作って、そこに移動する
  • 実装が楽

マーカーがないやつの特徴は

  • 実装が大変
  • パフォーマンスもよくはない
  • つねにバッファを監視してうごく
  • カーソルを戻す実装がしやすい

開発中のスニペットプラグイン 「Deoppet.nvim」 https://github.com/Shougo/deoppet.nvim

  • neosnippet互換のsyntax
  • マーカーがないタイプのスニペットプラグイン
  • extended Marks というneovimの新機能を使う予定(現在PRにある機能 )
  • 試すためにはneovimの特定のブランチを自分でビルドして黒魔術する必要がある

How ordinary Vim user contributed to Vim

https://speakerdeck.com/daisuzu/how-ordinary-vim-user-contributed-to-vim
vim本体にpatchを送る話。
「必要なものはコントリビューターになりたいという強いパッション」

送ったパッチの話

  • 辞書ファイルにパスを指定できなくなった問題を直した
    • ある朝vimをビルドするとエラーが
    • ちょうどvimconf2016のあとでpatch熱があった
    • パッチとテストを書いた、コミュニティの状態を調べた結果、送ったのはテストだけ
  • シソーラス補完のファイルのパスのチェックがなかった
    • 辞書ファイルのチェックをシソーラス補完にも追加した
  • インサートモードの補完がなかなかでない問題があった
    • 補完候補を表示するなかで不要な処理をしていた
    • 自分以外にも気づいた同僚がいたので、コントリビューターに仕立て上げようとした
    • 転職することになったので、同僚に任せずにパッチを書いた

patchを送る先

  • vim_dev
    • google group
    • gistにパッチを貼っておくとか
    • 承認制
  • github
    • PRを遅ればいい
    • ただし、Githubのマージボタンは使っていない

この発表が一番記憶に残っている。
淡々と話していましたが、実際はすごいことを成し遂げていてとても素晴らしいと思いました。

The new syntax highlighter for Vim

https://speakerdeck.com/pocke/the-new-syntax-highlighter-for-vim syntax highlighterの話。
iro.vim : 新しいsyntax-highlighterを作った、まだサポート言語は少ないがrubyはだいたいいける
言語自体のパーサーを使用して、間違ったハイライトをしない用に作っている(ASTベースでのsyntax-highlighter)。
パフォーマンスの問題はある、rubyなら10000行を超えると落ちる -> しかしパースの問題ではなくて、vimでmatchadpos()を大量にしようすると遅くなるらしい。

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

gina.vimの紹介

  • git用のプラグイン
  • 簡単なコマンド
  • TAB補完できる
  • . で繰り返しできる

めっちゃ便利そう