ファイルプレビュー
エディタを開かずに、Markdown、SQL、JSON、CSV、RTF、テキストのファイルを読みます。
場所: ワークスペース › ツール › ファイルプレビュー
「ファイルプレビュー」は、ローカルファイルの内容を拡張子に応じて解釈して表示します:Markdown(.md)はドキュメントとして描画し、SQL(.sql)はシンタックスハイライトと行番号を付けて、JSON(.json)はインデントし直して色を付けて、CSV(.csv、.tsv)は表として、リッチテキスト(.rtf)はドキュメントとして、プレーンテキスト(.txt、.log)はそのままの形で表示します。
これは読み出し専用のツールです:編集も保存もせず、何も実行しません。クエリーを書いて実行するには「SQLエディタ」が、ローカルのSQLiteデータベースを扱うには「SQLiteエディタ」があります。
どのサーバにも接続せずに動作し、ファイルを1つずつ、最近使ったファイルの一覧とともに表示します。
キーワード: プレビュー、ファイル、Markdown、MD、SQL、JSON、CSV、LOG、読む、ビューア、読み出し専用
ディスクからファイルを選ぶか、最近使った項目の一覧から開き直します。
「開く…」をタップし、対応しているファイル(.md、.sql、.json、.csv、.tsv、.rtf、.txt、.log)を選びます。ファイルは、ツールの開始画面に表示される「最近使った項目」に追加され、最後の8件が保持されます。
Calíopeは最近使ったファイルごとに永続的な許可を保存するので、アプリを終了したあとでも、探し直さずに開き直せます。ファイルが移動または削除されると、その項目からは開けなくなるので、「開く…」でもう一度選んでください。
「閉じる」はファイルを解放し、変更の監視をやめます。
Macでは、「クイックルック」(目のボタン、またはスペースバー)でファイルをシステムのビューアに表示します。プレビューが解釈しないもの(PDF、画像、オフィス文書)も開けます。
Calíopeの外から開くこともできます。Macでは、Finderの「このアプリケーションで開く」›「Calíope」から、またはCalíopeがその種類のファイルのデフォルトのアプリならダブルクリックで開きます。iPadとiPhoneでは、「ファイル」Appから共有してCalíopeを選びます。この方法で開いた.sqlはここではなく「SQLエディタ」に、SQLite、DuckDB、Parquetのファイルは「SQLiteエディタ」または「DuckDBエディタ」に送られます。目の前のセッションがこのツールを提供していない場合、ファイルは「オフラインで開く」で開きます。
キーワード: 開く、最近使った項目、ファイル、閉じる、アクセス権、サンドボックス
見出し、リスト、表、引用、コードブロックを描画します。
描画できるのは、#から######までの見出し、太字・斜体・インラインコード・取り消し線・リンクを含む段落、入れ子にできる番号付きリストと番号なしリスト、チェックリストの- [ ]と- [x]、引用ブロックの>、水平線、パイプ表、フェンスで囲んだコードブロックです。ブロックにsqlのタグがあると、.sqlファイルと同じようにハイライトされます。
意図的に除外しているもの:画像は決してダウンロードしません(代わりに代替テキストを表示します)。埋め込まれたHTMLは解釈せず、先頭のフロントマターは読み飛ばします。
見出しはVoiceOverに見出しとして読み上げられ、テキストはすべてDynamic Typeに合わせて拡大縮小されます。
キーワード: Markdown、MD、見出し、リスト、表、画像、コード
リッチテキストのファイルは、構造をそのまま保った書類として読みます。
.rtfファイル(テキストエディット、Word、Pagesが書き出すもの)は、マークアップではなく書類として表示されます。見出し、入れ子と番号を保ったリスト、太字、斜体、下線、取り消し線、リンク、段落の揃え、等幅の部分は、すべて保たれます。
適用されないのは、書類のタイポグラフィです:書体も、ポイントサイズも、色も適用されません。それらはMarkdownと同じようにCalíopeが用意するので、テキストはDynamic Typeに合わせて拡大縮小され、ライトテーマでもダークテーマでも同じように読めます。ファイルを開いているあいだ、下部にそのことが表示されます。
見出しのレベルは、その書類自体の中でのフォントサイズの相対的な大きさから推定します。いちばん大きいものがレベル1、次がレベル2、と続きます。RTFファイルはどこにも階層を宣言しないので、手がかりはそれしかありません。
対象外:.rtfdパッケージは開きません(ファイルではなくフォルダだからです)。埋め込まれた画像やオブジェクトは表示されません。書類にそれらが含まれている場合は、下部にその数が表示されます。
キーワード: RTF、リッチテキスト、書類、テキストエディット、Word、Pages、書式、太字、斜体
シンタックスハイライトと行番号を付けて表示し、実行はしません。
.sqlファイルは等幅フォントで、行番号とシンタックスハイライトを付けて表示されます:クエリー、スキーマ定義、制御、関数、型、ウィンドウ、手続きの各キーワードに加え、文字列リテラル、数値、--、#、/* … */のコメント、バッククォートで囲んだ識別子です。
実行ボタンはありません。それがポイントです:プレビューは決して接続を開きません。内容を実行したい場合は、「SQLエディタ」で開いてください。
500 KBを超えるとハイライトはオフになり、ファイルはプレーンテキストとして表示されます。下部の注記がそのことを伝えます。
キーワード: SQL、ハイライト、構文、行、実行、エディタ
JSONはインデントし直し、CSVは表にし、ログはそのまま表示します。
JSON(.json)は、1レベルにつき2つのスペースでインデントし直し、キー、テキスト、数値、true/false/nullに色を付けます。キーの順序はファイルのままで、何も並べ替えません。内容が有効なJSONでない場合は、下部にそのことが表示され、読み取れた分はそのまま表示されます。2 MBを超えると整形はオフになり、ファイルはディスク上のとおりに表示されます。
CSV(.csv、.tsv)は、行番号と固定のヘッダを付けた表として表示されます。区切り文字(カンマ、セミコロン、タブ、パイプ)は自動で検出され、下部にその名前が表示されます。引用符で囲んだフィールド、二重にした引用符、フィールド内の改行は正しく扱われます。描画されるのは最大10,000行と64列までで、切り詰めた場合はそのことが表示されます。並べ替えもフィルタもしません。データグリッドではなく、ビューアです。
プレーンテキスト(.txt、.log、そして認識できない拡張子のすべて)は、等幅で行番号を付けて、そのまま表示されます。2,000文字を超える行は描画できるように分割され、↳のマークは上の行の続きであることを示します。
オブジェクトと配列は折りたためます:余白の三角形でコンテナを隠すと、要素の数を添えた要約([…]または{…})が残ります。ヘッダの2つのボタンで、ファイル全体を折りたたんだり展開したりできます。空のコンテナは、最初から1行で表示されます。
キーワード: JSON、CSV、TSV、LOG、テキスト、TXT、表、区切り文字、インデント
一致箇所をハイライトし、件数を数え、そのあいだを移動できます。
⌘Fで検索バーが開きます。ヘッダの虫めがねボタンでも開けます。検索はプレーンテキストで、正規表現は使えず、読み込んだ分だけが対象です。ファイルが5 MBで切り詰められていれば、上の通知がそのことを伝え、残りは調べられていません。
一致箇所はシンタックスハイライトを隠さずに内容の上に色付けされ、選択中のものはより濃い色になります。Returnと⌘Gで次へ、⇧⌘Gで前へ移動し、バーの件数がいまどれにいるかを示します。Aaボタンで大文字と小文字を区別します。Escでバーを閉じます。
すべての種類で動作します:CSVではセルが光り、その行に印が付きます。Markdownとリッチテキストではブロック内のテキストが光ります(コードブロックでは一致箇所が数えられ、移動もできますが、光りません。コードブロックは独自のハイライトを保つからです)。JSONでは、折りたたまれたコンテナの中に隠れた一致箇所へ移動すると、そのコンテナが展開されます。数えられる一致箇所は5,000件までで、それを超えるとバーに+が表示されます。
キーワード: 検索、探す、一致、ハイライト、⌘F
ディスク上のファイルが変わると、表示が自動で更新されます。
ファイルを開いているあいだ、Calíopeはそのパスを監視します。ほかのプログラムからファイルを保存すると、表示は自動で更新され(数秒のあいだ「更新済み」のインジケータが出ます)、読んでいた位置は保たれます。「再読み込み」で強制的に更新することもできます。
監視は、テキストエディット、Xcode、vimが行うような、ファイルを書き直すのではなく置き換えるアトミックな保存にも耐えます:2回目、3回目の保存のあとも更新し続けます。
ファイルがなくなると、ツールはエラーとして扱わずにそのことを伝えます:ファイルの削除は失敗ではありません。
上限:大きなファイルは最初の5 MBを読みます(どれだけ表示しているかはヘッダに表示されます)。SQLのハイライトは500 KBを超えるとオフになり、JSONの整形は2 MBを超えるとオフになり、CSVは10,000行と64列まで描画されます。切り詰めた場合はすべて、表示の下部に明記されます。
キーワード: 更新、リフレッシュ、再読み込み、変更、サイズ、上限、5 MB
テキストファイルのエンコーディングをどう検出し、どこに表示し、読めないときに何と表示するか。
場所: ワークスペース › ツール › ファイルプレビュー
テキストファイルを読むとき、ファイルプレビューはまずバイト順マーク(UTF-8、またはどちらかのバイト順のUTF-16)を探します。なければ、先頭近くにNULバイトがあるとファイルをバイナリとして扱い、そうでなければUTF-8、システムによる検出、Windows-1252、ISO-8859-1の順に試します。見つかったエンコーディングは、ヘッダのファイルの種類の横に表示されます。
バイナリファイル、またはデコードできないファイルでは、「バイナリファイル、またはサポートされていないテキストエンコーディングです。」と表示されます。大きなファイルを切り詰めるときは、文字の区切りで正しく切ります。
キーワード: エンコーディング、UTF-8、UTF-16、Windows-1252、ISO-8859-1、バイナリ
Calíopeを開かずに、SQLite、DuckDB、Parquetのファイルのテーブルと最初の行を確認します。
Calíopeをインストールしていれば、システムの「クイックルック」で、SQLiteのデータベース、DuckDBのデータベース、Parquetのファイルを、アプリを開かずにテーブルとして表示できます。Macでは、Finderでファイルを選択してスペースバーを押します。iPadとiPhoneでは、「ファイル」Appでファイルをタップするか、ファイルを表示する任意のアプリからプレビューします。
上部にはファイルの名前、種類、サイズ、それを読んだエンジンが表示され、続いてテーブルの一覧が、各テーブルの行数と、型付きの列とともに表示されます。その下に、各テーブルの最初の20行が順に表示されます。テーブルが10個より多いデータベースでは、最初の10個だけが行を表示し、残りは一覧にだけ残ります。Parquetのファイルは1つのテーブルで、型はDuckDBが推定したものです。DuckDBのデータベースでは、ビュー、シーケンス、マクロが、行なしで「そのほかのオブジェクト」に一覧表示されます。
プレビューは決して書き込みません。元のファイルの隣にファイルを作らず、変更日も変えません。そのため、WALモードのSQLiteデータベースでは、メインのファイルに保存されている内容が表示され、そのことが示されます。まだ-walファイルにある変更は表示されません。
Macでは、TSVファイルもテーブルとして開きます。CSVファイルはmacOS自身が型のないテーブルとして表示します。iPadとiPhoneでは、システムがCSVをテーブルとして、TSVをテキストとして表示します。型付きのテーブルとして見るには、Calíopeで開いてください。
ここでは何も編集も問い合わせもできません。SQLを実行するには、システムがプレビューの上に表示するボタンで、ファイルをCalíopeで開きます。Apple Vision Proはほかのアプリのプレビューを読み込まないので、そこではシステムが、ファイルの名前とサイズを示す独自のカードを表示します。
キーワード: クイックルック、スペースバー、Finder、ファイル、プレビュー、SQLite、DuckDB、Parquet、TSV、CSV
プレビュー1回あたり約3秒、大きなファイル、暗号化されたデータベース、保留中の書き込み。
プレビューがファイルを読むのに使える時間は約3秒です。いちばん多くを語るものから先に読み(テーブルの一覧、次に最初のテーブルの行、それから行数)、時間が尽きるとそこで止まり、そのことを示します。残りを見るには、ファイルをCalíopeで開いてください。何百ものテーブルがあるデータベースでは、1秒もかからずに一覧全体が表示されます。何千もあると、プレビューはその3秒で止まり、一覧は完全で、行は最初の10個のテーブルの分です。
サイズだけでは問題になりません。最初の行しか読まないからです。2 GBのSQLiteファイルも数秒で開きます。数えないのは、Macでの50 MBより大きなTSVファイルで、「行数は未集計」と最初の20行が表示されます。
ファイルが読めないときは、プレビューは空白のままにせず、その理由を示します:
- 暗号化されたSQLiteデータベース、またはデータベースではないファイル。
- Macでは、.walファイルにまだ書き込みが残っているDuckDBのデータベース:Calíopeで開くと書き込みが完了します。
- 破損したファイル:プレビューはエンジンが示す理由を表示します。
- テーブルのないデータベースでは、そのことが示されます。
Calíope自身は、書き込みが保留中のDuckDBデータベースもふつうに開きます。Macでそれを適用できないのはプレビューだけです。システムは、渡されたファイルを読むことしかプレビューに許さないからです。iPadとiPhoneでは、「ファイル」Appからなら、プレビューは.walファイルも読み、その書き込みを含めたデータベースを表示します。
キーワード: クイックルック、制限、時間、大きい、暗号化、WAL、破損、行数は未集計