すべての記事

MacのクイックルックでコードやMarkdown、ZIPを見る方法

· 9分で読めます

FinderでSwiftやPythonのファイルを選んでスペースバーを押すと、クイックルックはコードを色のないプレーンテキストで表示します。README.mdは見出しや太字ではなく、# や ** がそのまま見えます。ZIPファイルにいたっては、アイコンと名前とサイズだけで、中のファイルは一つも見えません。

クイックルックが表示できるのは、Macにインストールされているプレビューが描けるものだけです。macOSに組み込まれたプレビューは、コードもJSONもMarkdownもプレーンテキストとして扱い、アーカイブを読めるものはありません。macOS Sequoia以降、この穴を埋めていた昔ながらのプラグインは読み込まれなくなりました。いまはアプリがインストールするクイックルック機能拡張が、より良いプレビューを担っています。Folia Filesにもその機能拡張が付いています。これがあれば、Finderやメールでスペースバーを押すだけで、コードは色分けと行番号付きで、JSONはインデントされ、Markdownはレンダリングされ、ZIPやTARアーカイブは中のファイルの一覧で表示されます。

クイックルックだけで表示されるもの

macOSだけの状態で、ファイルにスペースバー(または ⌘Y)を使うと、次のように表示されます。

  • ソースコード(Swift、Python、JavaScript、シェルスクリプトなど):色も行番号もないプレーンテキスト。
  • JSON:同じく色のないプレーンテキスト。
  • Markdown:生のテキスト。#、*、[リンク](…) がすべてそのまま見えます。
  • ZIP・TARアーカイブ:アーカイブのアイコン、名前、サイズだけで、中身については何もわかりません。

例外はCSVファイルで、macOSが最初から表形式で表示します。

理由:プラグインは廃止され、機能拡張に置き換わった

クイックルックは、ファイルの種類に応じてプレビューを選びます。macOSには、テキスト、画像、PDF、オーディオとビデオ、OfficeとiWorkの書類などのプレビューが組み込まれています。macOSにとって、ソースコードもJSONもMarkdownもテキストの一種なので、どれもプレーンテキストのプレビューになります。そして、アーカイブの中身を読むプレビューはシステムにありません。

長いあいだ、ライブラリのQuickLookフォルダに .qlgenerator プラグインを入れればプレビューを追加できました。macOS Sequoia(15)からはこれが読み込まれなくなり、その方法で入れたプレビューは使えなくなりました。いまでは、新しいプレビューはアプリに含まれるクイックルック機能拡張でなければなりません。アプリをインストールすれば、macOSがその機能拡張を使います。

状況を確かめられる場所は二つあります。

  • システム設定 › 一般 › ログイン項目と機能拡張:「機能拡張」セクションの「クイックルック」に、アプリがインストールしたプレビューの機能拡張が並び、一つずつオフにできます。
  • ターミナル:qlmanage -p ~/Desktop/README.md でFinderと同じようにファイルのプレビューを開けます。qlmanage -m plugins はmacOSに組み込まれたプレビューと、それぞれが受け持つファイルの種類を一覧表示します(アプリの機能拡張はここには出てきません)。

Folia Filesのクイックルック機能拡張

Folia FilesはMac用のファイルマネージャで、クイックルック機能拡張が付属しています。ほかに何かをインストールする必要はありません。アプリを「アプリケーション」フォルダに入れて一度開けば、macOSがクイックルックのプレビューを表示するあらゆる場所、つまりFinderやデスクトップ、メールの添付ファイル、そのほかのアプリで、スペースバーがこの機能拡張を使うようになります。

下のスクリーンショットはFolia Filesの中、「プレビュー」モジュールで撮ったものです。Finderでも、機能拡張は同じファイルを同じように色分けし、さらに余白に行番号を表示します。

Folia Filesで、プロジェクトのSwiftソースを一覧表示し、右側のパネルで「プレビュー」モジュールがAtlasApp.swiftを色分けして表示しているところ

プレビューできるもの

  • コード:Swift、Python、JavaScript、Ruby、PHP、Perl、シェルスクリプト、CとC++、Objective-C、Java、SQL、CSS、YAMLなど、macOSがソースコードとして認識する言語。キーワード、文字列、数値、コメント、型名がそれぞれ色分けされ、余白には行番号が付き、Macに合わせてライトでもダークでも表示されます。表示されるのはファイルの先頭600KBまでです。
  • JSON:インデントされて色分けされ、キーはアルファベット順に並べ替えられます。そのため、ファイル内の順序とは異なる場合があります。正しいJSONでないファイルは、そのまま表示されます。
  • Markdown:見出し、太字と斜体、箇条書き・番号付き・チェックボックスのリスト、引用、表、コードブロック、リンクをレンダリングして表示します。
  • ZIP・TARアーカイブ(無圧縮またはgzip圧縮の .tar.gz、.tgz):ファイルの数と展開後の合計サイズ、続いて各フォルダと各ファイルをインデント付きで、ファイルごとのサイズとともに表示します(先頭の5,000項目まで)。

7zやRARなどほかのアーカイブ形式とCSVファイルについては、macOS自身のプレビューがそのまま使われます。

macOSがコードとして認識しないために、対象から外れるファイルもあります。TypeScriptの拡張子 .ts はMPEGトランスポートストリームのビデオと同じなので、macOSはこれらのファイルをビデオとして扱います。GoやRustのファイルは、ほかのアプリが種類を宣言していない限り、macOSが認識する種類を持たないことがよくあります。こうしたファイルでは、Finderはいつものプレビューのままです。

オフにする、または二つのアプリから選ぶ

システム設定 › 一般 › ログイン項目と機能拡張では、この機能拡張は「クイックルック」の下に「Folia Files」として表示されます。オフにすると、macOSは自前のプレビューに戻ります。

Mac上の別のアプリにもMarkdownやコード用のクイックルック機能拡張がある場合、Finderが一つのファイルに表示するプレビューは一つだけです。もう一方を使いたいときは、同じ一覧で不要なほうの機能拡張をオフにしてください。

この機能拡張は、Webサイト版とMac App Store版のどちらのFolia Filesにも含まれています。

Folia Filesの中では:同じプレビューを、もっと広く

Folia Files自体の中では、コード、Markdown、JSON、CSV、アーカイブに対してスペースバーを押すと、アプリ独自のプレビューウインドウが開きます。写真、PDF、ビデオ、そのほかの書類は、いつもどおりクイックルックで表示されます。このウインドウはパネルの上に浮かんだままなので、矢印キーでファイルを移動し続けるとプレビューが追いかけ、スペースバーでまた閉じます。設定は「設定 › ファイルとネットワーク › プレビューとアーカイブ」にある「コード、Markdown、JSON、CSV、アーカイブのFolia Filesプレビュー(スペースバー)」です。

作業中もファイルの横にプレビューを出しておきたいときは、Folia Filesのモジュールの一つ、「プレビュー」モジュールを使います。右サイドバーの「モジュール」ボタンで追加するか、ツールバーの「新規パネル」をウインドウの端までドラッグし、表示されるグリッドで「プレビュー」を選びます。アクティブなパネルで選択したものが表示されます。

上部のボタンで表示を切り替えられます。Markdownは「レンダリング」「ソース」「16進数」、JSONは「整形済み」、CSVは「表」、アーカイブは「内容」です。色分けとMarkdownのレンダリングは、機能拡張と同じです。

Folia Filesの「プレビュー」モジュールが、「レンダリング」「ソース」「16進数」ボタンの下に、見出しと箇条書きのあるNotes.mdをレンダリングして表示しているところ

アーカイブにはもう一つ使い方があります。Folia FilesのパネルでZIPをダブルクリックすると、フォルダのように読み出し専用で開くので、必要なファイルだけをコピーして取り出せます。仕組みはZIPを展開せずに中身を見る方法で説明しています。

まとめ

  • Finderとメールで、色分けしたコード、インデントしたJSON、レンダリングしたMarkdown、アーカイブの中身を表示:Folia Filesをインストールして一度開くだけ。あとはスペースバーを押せば表示されます。
  • macOS自前のプレビューに戻す:システム設定 › 一般 › ログイン項目と機能拡張の「クイックルック」で、Folia Filesをオフにします。
  • ファイルの横に開いたままにしておけるプレビュー:Folia Filesの「プレビュー」モジュールを、右サイドバーか専用のパネルで使います。