Tablinは、キーボードでの編集とセルへの直接リンクに対応したmacOS用の表エディタです。
列の上部には A〜Z、AA、AB… のラベルを表示します。ラベルはセル内容やエクスポートには含まれません。
SwiftとAppKitで実装しています。CSV・TSV・Markdownの取り込みや、セル内の改行・折り返し表示に対応します。
表を軽快に編集する体験のお手本となったTableFlipと、その開発者に感謝と敬意を表します。
macOS 13以降を対象に、インストール済みのCommand Line Toolsでビルドします。 Xcodeのプロジェクト作成や外部パッケージのインストールは不要です。
cd /path/to/tablin
make build
open .build/Tablin.appビルドしたMacのCPU向けに生成します。
生成物は .build/Tablin.app、サンプルは examples/comparison.tablin にあります。
初回起動によって tablin:// がこのアプリに登録されます。
アプリの場所を移動した場合は、移動先で一度起動してください。
cd /path/to/tablin
make install
make runmake install はビルド後に ~/Applications/Tablin.app へコピーし、署名を検証します。
make run はインストール先のアプリを起動します。
更新時はTablinを終了してから、同じ手順を実行してください。
インストール先は INSTALL_DIR で変更できます。起動時にも同じ値を指定します。
make install INSTALL_DIR=/Applications
make run INSTALL_DIR=/Applications| 操作 | キー・UI |
|---|---|
| 表全体を検索(一致文字をハイライト) | Command+F |
| 次 / 前の一致箇所 | 検索欄で Return / Shift+Return、Command+G / Command+Shift+G |
| 検索を閉じて表へ戻る | 検索欄で Escape、Done |
| セル移動 | 矢印キー / Ctrl+F・B・N・P(右・左・下・上、Shift併用で範囲選択) |
| 右・左へ移動 | Tab / Shift+Tab |
| 下・上へ移動 | Return / Shift+Return |
| 行・列の端へ移動 | Command+矢印 |
| 範囲選択 | Shift+矢印、Shift+クリック、ドラッグ |
| 内容を置き換えて編集 | セル選択中に文字を入力 |
| 内容を残して文頭から編集 | Control+A |
| 内容を残して文末から編集 | Control+E、ダブルクリック |
| 編集中のセル内改行(入力中も行の高さが追従) | Option+Return |
| 右のセルへ移動(編集中は確定) | Cmd+Return |
| 編集を取り消す | Escape |
| 編集中に隣のセルへ | Tab、左右の文字列端で矢印 |
| 行・列を挿入 | Option+矢印、ツールバー |
| 行を削除 | セル選択中に Option+Backspace(⌥⌫)、Remove Row |
| 列を削除 | セル選択中に Option+Shift+Backspace(⌥⇧⌫)、Remove Col |
| コピー・切り取り・貼り付け | Command+C / X / V |
| 太字 / 斜体 / 下線 | Formatメニュー、Command+B / I / U |
| Undo / Redo | Command+Z / Command+Shift+Z |
| 折り返し切り替え | Wrap、Command+Option+W |
| 表の拡大・縮小 | Command++ / Command+-、ピンチ。フォーカス中のセルが見えるようにスクロール |
| 列幅調整 | 見出し行の列境界をドラッグ |
| セルリンクをコピー | Copy Link、右クリック、Command+Option+C |
| 表をMarkdownでコピー | Command+Shift+C |
| 表をCSVでコピー | Edit → Copy Table as CSV |
| 行番号・表示倍率 | Viewメニュー |
| 列の文字揃え | ツールバーのLeft / Center / Right |
検索は見出しを含み、大文字・小文字を区別しません。左から右、上から下へ一致箇所ごとに移動し、末尾から先頭へ循環します。現在の一致はオレンジ、他の一致は黄色で表示します。長いセルでは一致文字が見える位置までセル内をスクロールします。検索欄へ戻ると編集中のセルを確定し、日本語変換中のReturnは検索移動に使いません。
文字装飾は、セル選択中は選択セル全体、編集中は選択した文字に適用します。編集中に文字を選択していない場合は、これから入力する文字の装飾を切り替えます。複数の装飾を組み合わせられます。
装飾は .tablin の保存とTablin内でのセルコピーに含まれます。CSV・TSV・Markdownへの書き出しは文字のみです。
0行目は見出しです。見出しも通常のセルと同じ方法で編集できます。 右端・下端を越える移動では行・列を追加します。空の行・列も保存され、末尾の不要な空白はPruneで取り除けます。
編集中のUndoは文字編集に適用されます。セルを確定すると、セル編集全体を文書のUndoで戻せます。 日本語の変換中は、Returnなどをセル移動として横取りせず、標準のテキスト入力へ渡します。
- Tablinでセルを選び、
Command+Option+Cを押します。 - 未保存なら
.tablin文書として保存します。リンクのコピー前に文書を保存します。 - コピーしたリンクを、ノートや文書などに貼り付けます。
- 同じMacでリンクを開くと、Tablinの対象セルへ移動します。
リンク先を開くには、利用するアプリが tablin:// のようなカスタムURLスキームに対応している必要があります。
リンクは文書・行・列のUUIDを含みます。行列の挿入で座標が変わっても対象を保持します。 削除された行・列にはエラーを表示し、別のセルへ置き換えて移動しません。 保存先のパスに加え、同じMacのブックマークから移動・改名されたファイルを探します。 別のMacへのリンク移行や、Finderで複製した同じUUIDの文書の使い分けには対応していません。
.tablinはJSON文書です。内容、固定ID、列幅、文字揃え、折り返し、行番号、表示倍率を保存します。File → Import CSV / TSV / Markdown…は新しい文書への取り込みです。- CSV/TSVでは引用符で囲んだセル内の改行・タブ・カンマを扱えます。UTF-8を使用します。
- Markdownは最初のパイプ表を取り込みます。文書全体や複数の表の直接編集には対応していません。
File → Export CSV… / Export Markdown…で内容を書き出します。Markdownのセル内改行は<br>に変換します。- CSV/Markdownにはセルの固定IDやTablinの表示設定を出力しません。
1文書につき1つの表を扱います。 表以外のMarkdown文章の保持、複数表タブ、外部エディタとの同時編集は対象外です。 非常に長いセルは表示高を600ptに制限し、編集欄のスクロールで全文を扱います。
複数のワークツリーを並行に検証するときは、それぞれのディレクトリで実行します。
make dev # このワークツリーの開発用アプリをビルドして起動
make build-dev # ビルドのみ開発用アプリは .build/dev/Tablin Dev <ID>.app に生成されます。
<ID> はワークツリーの絶対パスから生成する12桁のハッシュで、同じ場所では変わりません。
アプリ名・実行ファイル名・Bundle ID・URLスキーム (tablin-dev-<ID>://) が分かれるため、
複数の開発用アプリを同時に起動できます。設定・文書ブックマーク・復元状態もBundle IDごとに分かれます。
生成物とSwiftのモジュールキャッシュは各ワークツリー内に置き、通常ビルドとも分離します。
セルリンクはコピー元の開発用アプリに戻ります。ワークツリーを移動するとIDが変わるため、
開発用リンクはコピーし直してください。通常版の tablin:// と開発用リンクは相互には開きません。
URLリンクを検証するときは、ワークツリーを /tmp などの一時ディレクトリ外に置いてください。
一時ディレクトリ内では、起動できてもmacOSがURLスキームの起動先として解決しない場合があります。
.tablin のファイル形式は共通です。開発用アプリではFileメニューから検証用コピーを開いてください。
同じ文書を複数のアプリで同時編集した場合の上書き競合は防ぎません。
開発用アプリは .tablin の既定アプリを要求しません。
make build / make install / make run は通常版向けです。
開発用アプリを更新するときは、対象のアプリを終了してから make dev を再実行してください。
ビルドにはmacOS 13以降とCommand Line Toolsが必要です。
テストには追加で shellcheck と shfmt を使用します。
make testデータモデルとAppKitの自動テストに加え、ShellCheck、shfmt、plist検証を実行します。 AppKitのテストではウィンドウを表示せず、実際の文書・表・テキスト編集コンポーネントを使います。
主なテスト対象は次のとおりです。
- 文書の保存・再読込と固定ID・表示設定の保持
- セルリンクの解析、行列の変更後の参照、文書の移動・改名
- CSV・TSV・Markdownの変換とセル内の改行・特殊文字
- 行列の編集、Undo / Redo、編集中の保存
- 折り返し表示、列幅変更、日本語の変換中テキストのキー処理
実際の日本語IMEでの候補選択や連続入力、長時間編集の使い勝手は、自動テストだけでは確認できないため手動での検証が必要です。
TablinはMITライセンスで公開しています。 著作権表示とライセンス本文を保持することで、商用利用・改変・再配布が可能です。