- Vim9 スクリプト言語の大幅な改善、強化された diff モード、完全な自動補完機能、Wayland の実験的サポート などを含むメジャーアップデート
- fuzzy マッチング、レジスタベースの単語補完、新しい completeopt オプション などにより入力モードの自動補完が強化
- Wayland UI とクリップボード対応、垂直タブパネル、Windows ネイティブのダークモード など、プラットフォームごとの UI 改善を実施
- Enums、Generic 関数、Tuple 型 など言語機能が拡張され、AI ベースのプラグイン開発にも活用可能
- Bram Moolenaar の死後も Vim は Charityware の哲学を維持し、支援団体は Kuwasha に移管
主な機能改善
- 自動補完機能の強化
- 入力モードで fuzzy マッチングをサポートし、レジスタ(
CTRL-X CTRL-R) から直接単語を補完可能
'completeopt' に nosort、nearest オプションが追加され、結果の並び順を細かく制御可能
- プラットフォームおよび UI の改善
- Wayland UI とクリップボードを完全サポート
- Linux/Unix 系では XDG Base Directory Specification に準拠し、
$HOME/.config/vim を設定パスとして使用
- 垂直タブパネルを追加し、Windows GUI はメニュー・タイトルバーの ダークモード と 高解像度アイコンをサポート
- 学習支援機能の追加
:Tutor コマンドで起動する インタラクティブなチュータープラグインが新たに導入され、従来の vimtutor より現代的な学習体験を提供
Vim9 スクリプト言語の拡張
- 言語構造の強化
- Enum、Generic 関数、Tuple データ型が新たにサポート
- 組み込み関数が オブジェクトメソッドとして統合され、クラスは 保護された
_new() メソッド と :defcompile による完全なメソッドコンパイルをサポート
- AI ツールとの統合
- GitHub Copilot を活用した 2 つのサンプルプロジェクトが公開
- Battleship in Vim9: クラスを活用した古典ゲームの実装
- Number Puzzle: インタラクティブプラグイン形式の論理パズル
Diff モードの改善
- Linematch アルゴリズム
'diffopt' 設定に新たに追加され、類似した行同士の変更を整列し、ハイライトの精度を向上
- Diff Anchors
'diffanchors' オプションで アンカーポイントを指定し、複雑なファイルの区間ごとの diff 整列が可能
- Inline Highlighting
- 1 行内の変更点を細かく表示し、
"inline" サブオプションで制御可能
"inline:simple" がデフォルトの 'diffopt' 値に含まれる
デフォルト値の変更
- 現代的な環境に合わせて複数の デフォルト設定値が更新
'history': 50 → 200
'backspace': 空値 → "indent,eol,start"
'diffopt': "internal,filler" → "internal,filler,closeoff,indent-heuristic,inline:char"
'fontsize' (GTK): 10pt → 12pt
'showcmd'、'ruler': デフォルトで On に変更
その他の改善とバグ修正
- Vim 9.1 以降、多数の セキュリティ脆弱性、メモリリーク、クラッシュ問題が修正
慈善活動の移行
- ICCF Holland の解散
- 創設者 Bram Moolenaar の死去後、財団の維持が不可能となり解散
- 残った資金は Kibaale プロジェクト支援のために移管
- Kuwasha との協力
- カナダ拠点の団体 Kuwasha がウガンダのプロジェクトを引き継ぎ、支援を継続
- Charityware の継続
- Vim は引き続き Charityware として維持され、ユーザーは Kuwasha を通じて寄付可能
謝辞と配布
1件のコメント
Hacker Newsのコメント
Vim9が進化し続けているのを見るのはうれしい
重心はやや Neovim 側に移ったようにも見えるが、NeovimのエコシステムはIDE的な環境を求める人たちにより焦点が当たっているように思う
気になるのは、より多くのプラグイン開発者が Vim9Script に移行するのかという点だ。Neovimユーザーの多くはLuaベースのプラグインへ移っており、両方をサポートする動機が薄れているように見える
特に tuple サポート が追加されたのが本当にうれしい
ElispもVimscriptも、自分にはあまりに窮屈だった
とはいえ、選べるならLua以外の言語がよかった気もする
Vimが30年以上 Charityware として運営されてきたのは印象的だ
Bram Moolenaarが亡くなった後、ICCF Holland財団は解散したが、残っていた資金はウガンダのKibaaleプロジェクトを継続支援できるよう移された
自分は技術的な理由でvimを選んだが、Bramが善意でこうした 寄付活動 を続けていたと知ってからは、なおさら誇らしく感じた
結局、Linuxディストリビューションにすでに含まれているという事実は、ただ静かに見過ごされた
それでもBramの意思は全面的に支持している
自分は vimファン だが、結局nvimへ移った
正直、vimのメンテナたちがnvimと何とか統合する方法を見つけてくれたらと思う
自分のローカルでも、Raspberry Piでも、Ubuntu 20.04のVMでも、どこでも同じように動く
Vimはシンプルさと一貫性が核心なので、もっと多機能さが欲しいなら、むしろvscodeにvim拡張を入れて使うほうがいいと思う
以前nvimを試したが大きな利点は感じられず、
:shコマンドの挙動が違ったのでやめた個人的にはvim9の方向性が気に入っている
正直 Lua が嫌いだ。インフラ全体がLuaに流れていくのが避けられなくなっている
XDGサポートが解決したのは幸いだ
init.nvimに~/.vimrcを読ませれば問題ない「AI機能はどこ?」という冗談が出るくらい、今回のリリースは AIなしの大型アップデート として新鮮に感じる
昔Sublime Textに移った理由もそれだったし、今使っているVSCodeやZedでも必須の機能だ
プラグインはあるが、標準搭載になればもっと強力になると思う
昔、Bram MoolenaarがNeovim登場前まではvimの更新を拒んでいた時期があった
GitHubのタグ一覧 にv9.2タグがなくて妙だった
長年気になっていたが、ついに本腰を入れてvimを学び始めた
AIのおかげで依頼の合間に時間ができ、学ぶ余裕が生まれたし、IDEやAIに単純な修正を頼むほうがむしろ遅く感じる
エージェント的ワークフロー のおかげで、細かな修正や反復作業をずっと速くこなせるようになった
昔はvimの伝道者だったが、今では 音声コマンドとAI修正 でほとんどのバグを解決している
それでもvimの哲学は今も愛している
vimが今も進化を続けているという知らせは本当にうれしい
Windows GUIがついに ダークモード、改善されたフルスクリーン、高解像度アイコンをサポートするようになった
新リリースを祝いつつ、これらのすばらしい改善を試せる日を楽しみにしている