L123: Lotus 1-2-3スタイルのターミナル表計算、現代のExcel互換を実現
要点
- l123はLotus 1-2-3 R3.4aのターミナルUXをRustとIronCalcで再実装。スラッシュメニュー、キーボード中心の入力、ネイティブな.xlsxラウンドトリップを提供する。
注目ポイント
- Rustワークスペースで厳格なレイヤー構造を採用。IronCalcは差し替え可能なEngine traitの背後に配置され、l123-parseが@SUM/..構文を計算前にExcel形式へ変換する。
- マイルストーンM0〜M8が完了:グリッド、数式、.xlsx/CSVラウンドトリップ、3Dシート、名前付き範囲、アンドゥ、印刷、7種類のグラフ、マウス対応WYSIWYGアイコンパネル。
- 「本物らしさ」の契約:R3.4aの経験者がドキュメントなしで即座に操作できることが前提。アクセプタンステストはキーストロークのトランスクリプトで画面状態の出力を検証する。
- 数式構文は1-2-3ネイティブ:@SUM(A1..A5)、#AND#/#OR#/#NOT#の論理演算子、先頭文字ルールでモード切り替えなしにラベルと値を判別。
- M9マクロ(/X、{BRANCH}、{IF})は計画中。M10のテーマとコンテキストヘルプは開発中。API、キーバインド、ファイルパスはv1.0まで安定しない。
Hacker Newsのコメント概観
- ターミナル表計算は小規模ながら活発なニッチ。sc-imがHNで繰り返し登場する最有力の先行実装で、sheetsuiとcellは同じ領域の新参エントリ。
- 公式UNIX版1-2-3バイナリを現代のLinuxに移植・保守しているコメント投稿者は、キーボード設計をノスタルジーではなくデータ入力効率の実質的な向上と評価。一方、LMBCS→UTF-8変換は未解決の課題であり、l123はRust再実装によってこの問題を回避していると指摘。
- VisiDataはデータ整形・探索のツールとして推薦されたが、l123が目指す「1-2-3の厳密な動作再現」とは用途が異なる。
注目コメント
- @nhatcher: sc-im、sheetsui、cellをl123と並行してウォッチすべきターミナル表計算の現行選択肢として挙げる。
- @taviso: 123elfの作者。オリジナルのUNIX版1-2-3バイナリをLinuxへ移植して今も日常利用中。残存する移植課題としてLMBCS文字エンコーディングを指摘。
英語版: L123: A Lotus 1-2-3–style terminal spreadsheet with modern Excel compatibility · Original source