この記事は Vim 駅伝の 477 本目の記事です。
Meguro.vim #34 を開催しました。
当日の様子
ランチは#30 ぶりにニュービストロガブリ 目黒店へ行きました。8 人で参加。私は少し遅れての到着になってしまいました。

今回の参加人数は 12 人でした。初参加の方も何人かいました。嬉しいですね。
今回も皆さん各々思い思いの作業をしつつ、あちこちで交流が発生していたように思います。PHP や Rust などの勉強をしている人がいたり、個人設定ファイルの整理をしている人がいたり、AI でアプリを作っている人がいたり、開業届を出している人がいたりしました。
私は主に Vim 本体へのパッチを作って(AI に作らせて)いました。 まずやっていたのは、Vim9 script における辞書メンバーに対しての関数定義です。 Vim9 script では以下の文法は許可されていません。
vim9script const dict = {} def dict.Func() enddef
これは legacy Vim script においては辞書関数という機能で、関数内で self の参照ができたりと色々特殊だったのですが、Vim9 script においては同様のことは class でやるべき、となっており、辞書関数機能は廃止されていました。
しかし、辞書関数でなくても、無名関数を辞書に直接代入できるだけでも有用なはずです。
vim9script const opts = {} def opts.out_cb(ch, msg) # ... enddef const job = job_start(['bin/sh', '-c', 'echo hello'], opts)
というわけでこれをできるようにするパッチと、辞書関数廃止という歴史があるので理論武装をさせていました。
と、いう作業をしていたら Vim がクラッシュするバグを発見してしまい、そちらの再現条件の調査および修正をやって(AI にやらせて)いました。 色々調査した結果最小の再現方法まで辿り着けました。当日の作業時点の Vim 9.2.0161 で、以下の条件でクラッシュします。
" minimum_vimrc set tabline=xxx showtabline=1 set showtabpanel=1 call feedkeys(":q\<CR>") " これは手動でやってもよい
$ vim -u minimum_vimrc -p a.txt b.txt
タブパネル関連のバグでした。修正パッチも作ってあるので、後ほどまとめて PR する予定です。
夜は今回は 6 人でインド&ネパール バル ラクシュミーへ行きカレーなどを食べました。いつもはガラガラで少し心配になるくらいですが、今回は結構人が入っていて賑わっていました。

次回
次回は 2026 年 5 月 23 日に開催予定です。
次回もよろしくお願いします。