2024VimConfに参加しました
始めに
今年もVimConfに参加してきました!
昨年はまだ感染症が落ち着きだして間も無い頃ということもあったので、開催規模を縮小しての開催でした。
しかし、今年は例年とおりの開催ということで、非常に盛り上ること間違いなし!
昨年の楽しさを知っていた私は、一番にチケットを買い自慢していました。
名札もよく見てください。私のチケット#1
でしょ?
私のチケットとチケット番号でソートバトルしてくれる猛者は出てこなかったのが寂しかったですね。
今年は規模が例年とおりに行われるということで、朝の10時頃から懇親会も込みでVimづくしの1日です。
まぁ、私は前日から秋葉原に泊っているので、1日どころじゃあないがな!
各セッションの感想
各セッションに関してはYouTubeで公開されるとのことなので、詳しいことは動画を見て貰った方がよいと思います。
一番はVimConfに参加するともっと楽しめます!
また、昨年のVimConf tinyには無かった物として、各セッションの同時通訳がありました。
会場に入る際の受付でトランシーバーを受け取れるため、同時通訳が必要な人は借りることができるという物です。
リスニングが得意ではないので、プロの翻訳家の人が交代で翻訳してくれるのはとてもありがたかったです。
『Keynote - The new Vim project - What has changed after Bram』 by Christian Brabandt
Vimメンテナーのクリスチャン氏(通称クリスチャン先生)から、現在のVimプロジェクトの運用状況や、今は亡きブラム氏から引き継いだ物の現在についての話でした。
昨年亡くなられたブラム氏からアカウントやロール周りの引き継ぎにまつわる苦労がセッションでは伝わるような内容でした。
また、それ以上にブラム氏の勢力的な活動が、これまでのVimというプロジェクトをすべて支えていたことを改めて認識しました。
ただVimの開発が続けられていればよい訳ではなく、公式サイトのvim.orgのSSL証明書の更新やバイナリ配布のためのCI環境整備の他、
ドキュメントの整備まで上げていけばキリが無い程やらなくてはいけないことが沢山あります。
「これらをブラムさんは一人でやっていたの…?」と疑問に思うほどの作業量です。
また、今後のコミュニティ運用を見越してクリスチャン先生の代りができる人を決めていたり、今後の体制を磐石にするための施策を準備しているようです。
VimがNeovim側の機能を取り込むという話や、互換性を持てるようにするという話があり、今後のVim/Neovimの未来はよい物になりそうです!
『Keynote - (Neo)Vim Made Me a Better Software Developer』 by TJ DeVries
telescope.nvimの作者で、NeovimとVimのコントリビュータであるTJ氏によるセッションです。
全体的にはVimやプラグインの話というよりも仕事のやり方や、「よいソフトウェアエンジニアとは」というような話がメインでした。
YouTuberらしい勢いのある発表ですが、それだけではなく「よいエンジニアになるためにはどうしていくのがよいのか」という話は大変学びになりました。
具体的には継続的に改善できる環境をTJ氏はPersonalized Development Environment(PDE)
と呼んでいました。
つまり、テキストエディタという訳ですね。
これに関してTJ氏は仕事での経験となぞらえて話をしていましたが、仕事ではリリースまでに長い期間が必要になるような大変な環境だったようです。
ですが、OSS活動で常に自分の環境が本番環境という状況と、テキストエディタを設定することで改善していくという体験はとてもよいことだったようです。
このお陰でtelescopeというプラグインが完成したと思うと、とても考え深いですね。
セッションの中で特に強調されていたのは試行回数(iteration)を上げるということでした。
プラグインを作る中で、自分が作りたい物を作りながら、気持ち悪いと感じる部分をどんどん改善していくという部分は、私もVimの設定をする中で大事にしている部分です。
『Mastering Quickfix』 by daisuzu
Quickfixの基本的な使い方や活用方法についてのセッションです。
仕事においての活用方法や、Quickfixを使った便利なプラグインとしてqfreplaceの紹介もありました。
私も仕事で使えるときは使っていますが、
機能として知っていても:cdo
や:cfdo
、location-list
は活用できたことがなかったので、使えるタイミングがあれば活用したくなりました!
『Hacking Vim script』 by Kota Kato
Vim本体のソースコードの読み方から、組み込みの関数を追加するというセッションです。
本体に手を入れるという作業のため、注意すべき点やデバッグの仕方を紹介をしていました。
Vimのソースコードを追うならctagsが現役みたいです。
二十歳にしてVimにパッチ送っていたり、こうやってカンファレンスで発表しているのは偉大すぎると思いました。
Vimにパッチを送ってよい大学に入る、素晴しいVim大学生のセッションでした。
ちょうどこのセッションの裏でvim-jpの#event-vimconf
チャネルでは、
「本体のソースコードを一斉にgit cloneしてGitHubのrate limitになるのでは?」みたいな話題で盛り上がっていて面白かったです。
『Switch between projects like a Ninja 🥷』 by Yuki Ito
複数プロジェクトのソースコードを扱うときにvimのセッション機能の活用方法に関するセッションです。
セッションを都度保存して、作業を再開するときに素早く作業を再開するためのテクニックを紹介していました。
『Vim meets Local LLM: Edit Text beyond the Speed of Thought』 by yuys13
vim-jpラジオでは「お便りの車アイコンさん」で有名なyuys13さんのLocal LLMを活用したプラグイン作成のセッションです。
リポジトリのデモ操作で出しているような動画をスライドに差し込んでいたり、
ollamaが提供するAPI自体の解説からプラグインとして組み込むところまでの解説が分かりやすかったです。
『Creating the Vim Version of VSCode Dev Container Extension: Why and How』 by mikoto2000
VSCodeのdev containerと同じようなことをvimで実現するというセッションです。
ホスト側のVimからコンテナ環境に構築したVimへアタッチしたり、コンテナ内での操作になるためyankしたときのクリップボードとの連携など非常に高度なことをしていました。
『Neovim for Frontend Developers: Boosting Productivity and Creativity』 by ryoppippi
なんとかぴっぴさんことryoppippiさんのフロントエンドの開発環境とNeovimの組み合わせについてのセッションです。
セッション開始直後から眠くなりかけていた会場を盛り上げるようなコールをしたり、スライドの端々に面白いネタ要素を差し込んでいて、
為になる話もありインパクトのあるセッションの1つでした。
英語のリスニングが得意ではない私でも頑張って聞きとれるような英語でトークしていて、このセッションでは通訳のイヤホンを外して会場の雰囲気と共に楽しみました!
『Building Neovim Plugins: A Journey from Novice to Pro』by 2KAbhishek
Neovimでプラグイン作成する方法に関するセッションです。
プラグインを作るときのディレクトリ構成や実装例、GitHub Actionsを活用してVimのヘルプを生成する方法などを紹介していました。
また、Neovimでプラグインを作るときに便利な機能の詰め合せのプラグインとしてplenary.nvimというプラグインを紹介していました。
個人的にはVimのヘルプは頑張って自力で作成するくらいの方法しか知らなかったので、GitHub Actionsを活用する方法を取り入れたいと思いました。
『Can't Help Falling in Vim ~ Wise men say only fools reinvent the wheel, but I can't help building yet another fuzzy finder: Fall』 by Λlisue
タイトルがなっがああああああああい!! 説明不要!!
…いや
違う、そうじゃない
あの…ありすえさん、タイトル長くてmarkdownlintに怒られています。
vim-jpの妖精でありアイドルであり、vim-jpラジオのパーソナリティのありすえさんによるfuzzy finderのセッションです。
これまでのfuzzy finderの歴史から始まり、新たに作成されたfall.vim
の紹介がありました。
これは当日でしか楽しめなかった要素かもしれないので、ちゃんと書いておかないといけない気がしているので書きます。
翻訳しやすいように、または聞きとりやすいようにゆっくりとした英語でセッションをしていました。
そのゆっくりさがvim-jpの#event-vimconf
チャンネルではねっとり英語と呼ばれていて、翻訳の人もねっとりとした喋り方になっていたのが、ある意味では印象的でした。
『The latest dark deno powered plugins』 by Shougo Matsushita
「ミニマルなプラグインとは何か?」という思想についてのセッションです。
Shougoさんのプラグインといえば、設定しなければ動かないプラグインで有名です。
最近ではddシリーズ
と呼ばれるddu.vim
やddc.vim
, dpp.vim
が開発とメンテナンスを続けられています。
このセッションではこれらのプラグインを作るに至った思想や、テキストエディタに対する精神について語られていました。
簡単にまとめると次のようになります。
- 最近のプラグインは設定ができない
- ddシリーズなら細かく設定できるインターフェイスがある
- これが真のユーザーフレンドリーである
- 設定によって、テキストエディタを制御する必要がある
- テキストエディタに目覚めてください
同時通訳していた人も、これらの思想は難しかったようで、ときどき言葉を選ぶような雰囲気を感じました。
それもそうです。この思想は難しすぎるので、言葉を選ぶようになってしまうのは必然です。
このセッションを聞いた海外からの参加者は、この思想に対してShougoism
というワードで広めていました。
Shougoism
広まって欲しいな…。
また、セッションが終ってから質問時間があったので、そこで私は今後のプラグインや次世代のプラグインについて質問しつつ、
いつものように「設定させていただきありがとうございます。」という感謝を述べさせていただきました。
まとめ
全部のセッションについて感想を書くだけでも大変でしたが、実はまだまだVimConfって楽しいことがいっぱいあります。
昼食は豪華な弁当付きです!
写真を撮っていないため、魅力を伝えきれませんが、懇親会のオードブルも美味しい物が並んでいました。
「セッションの話が終ったら、後は食べ物の話ばっかりかよ!」
って思うかもしれませんが、VimConfを本当に楽しむなら現地参加。現地参加がすべてを解決します!
現地参加しなきゃ体感できない楽しさがあります。
美味しいご飯を食べられるっていうだけで参加してもよいですし、テキストエディタのカンファレンスという枠には収まらない素敵な出会いがあります。
きっと来年もあるVimConfを楽しみに、これからも頑張るぞー。
Discussion