QuickLookでファイルの中身を表示 (MacOSX)

MacのFinderでスペースキーを押した時に表示されるQuickLook
テキストや画像であれば、簡易Viewerで内容を表示してくれる。

ソースコードが表示されない。

ただ、ソースコードなどのQuickLockに認識されない拡張子だと、
下図のように内容が表示されない。

最近は、マークダウンでメモを残すようにしているので、
.mdファイルもこんな感じですぐに見れなくて不便。

QuickLookとは

MacOSX に備わっている、
Finderでファイルを選択してSpaceキーを押すと表示される簡易表示の事だ。

QLPlugins という形で下記のディレクトリに、XXX.qlgenerator というファイル名で配置されている。

  • $HOME/Library/QuickLook
  • /Library/QuickLook
  • /System/Library/QuickLook

使われるqlgeneratorは、上から順に、
ファイルタイプ(ContentType)に対応したものがあれば処理される。

インストールは、これらのディレクトリにプラグイン(.qlgenerator)を配置するだけで動作するので、
アンインストール時もこのディレクトリから基本削除するだけです。
(qlデーモンが動作しているので、qlmanager -r でリロードする必要はある)

で、あともうひとつ、
アプリケーション自体が、QuickLookを内包している場合もあるようで。
.appのContents/QuickLook 内に.qlgeneratorファイルが配置されている。

  • /Applications/XXX.app/Contents/QuickLook

デフォルトのアプリケーションに設定されている場合は、
このqlgeneratorが優先して使用されるのだろうか。
(ちょっと検証してません)

入れておいた方が良い、QuickLookプラグイン

qlstephen

https://github.com/whomwah/qlstephen

このプラグインは、対応するプレビューがない場合にプレーンテキストとして
簡易表示してくれるものです。

ソースコードは拡張子の種類が多く、
網羅できないので不明な拡張子はテキストとしてプレビューしておいた方が汎用性が高いです。

シンタックスハイライトで表示される訳じゃないので、
あれですが、ファイルの中身が簡単に見れるだけでも充分でしょう。

qlmarkdown

https://github.com/toland/qlmarkdown

マークダウンテキストを、HTMLに展開してプレビューしてくれます。

これホントに便利で、Markdownでメモを残してる場合、
簡単に見れて良いです。
こんなに綺麗に表示してくれる!

インストール

qlgeneratorのインストールは、brewコマンドを使うのが簡単です。
(brew-cask が必要なので、使えるようにしておくと幸せになれます。)

brew update
brew cask install qlstephen
brew cask install qlmarkdown

アンインストール

アンインストールは同様にbrewコマンドで出来ます。

brew cask uninstall qlmarkdown
brew cask uninstall qlstephen

brew コマンドの場合、qlmanager -rなども自動でやってくれているようです。

qlmanage コマンド

QuickLookの管理コマンドです。
プラグインを入れ替えたときに、デーモンのリロードを行ったり、
コマンドからプレビューを表示したりすることができます。

qlmanage --help

$ qlmanage --help
Usage: qlmanage [OPTIONS] path...
    -h      Display this help
    -r      Force reloading Generators list
    -r cache    Reset thumbnail disk cache
    -m [name ...]   Display statistics about quicklookd. Stats names:
            * plugins   Show the generators list
            * server    Show quicklookd life information
            * memory    Show quicklookd memory consumption
            * burst     Show statistics about the last burst
            * threads   Show concurrent accesses stats
            * other     Show other information about quicklookd
    -d debugLevel   Integer between 1-4
    -p      Compute previews of the documents
    -t      Compute thumbnails of the documents
    -x      Use quicklookd (remote computation)
    -i      Compute thumbnail in icon mode
    -s size     Size for the thumbnail
    -f factor   Scale factor for the thumbnail
    -F factor   Scale factor for the thumbnail, draw downscaled and compare to 1x
    -z      Display generation performance info (don't display thumbnails)
    -o dir      Output result in dir (don't display thumbnails or previews)
    -c contentType  Force the content type used for the documents
    -g generator    Force the generator to use

キャッシュクリアとリロード

QuickLookディレクトリを操作した場合に、デーモンに反映させる為にリロードをかけます。
(brewでインストール、アンインストールした場合は、ここらへん自動でやってくれてるぽい)

# サムネイルのキャッシュなどを消去
qlmanage -r cache

# Generatorsをリロード
qlmanage -r

プレビューの表示

CUIから、プレビュー表示をする事もできます。

qlmanage -d1 -p ./memo.txt

-d 1オプションをつける事で デバックレベル1で動作します。
デバックログを出力できるので、どのqlgeneratorが処理しているのかが確認できます。

qlmanage -d1 -p ./memo.txt
Testing Quick Look preview with files:
    ./memo.txt
[DEBUG] Preview test for memo.txt -- file:///Users/tyab/Desktop/. Content type UTI: public.plain-text
[DEBUG] Previewing file:///Users/tyab/Desktop/memo.txt. Content type UTI: public.plain-text. Generator used: <QLGenerator Text.qlgenerator>
[DEBUG] Loading <QLGenerator Text.qlgenerator>
[DEBUG] Previewing file:///Users/tyab/Desktop/memo.txt finished

generatorを指定して表示する

generatorを指定して、表示させる事もできます。

qlmanage -g /System/Library/QuickLook/Text.qlgenerator -c public.plain-text -p ./memo.md

ファイルのContentType

処理するqlgeneratorは、ファイルのContentTypeをみて判断されるようです。
mdlsコマンドを使うと、指定ファイルのContentTypeを調べる事ができます。

$ mdls ./2018-01-09.txt
_kMDItemOwnerUserID            = 501
kMDItemContentCreationDate     = 2018-01-09 12:48:31 +0000
kMDItemContentModificationDate = 2018-01-09 12:48:31 +0000
kMDItemContentType             = "public.plain-text"
kMDItemContentTypeTree         = (
    "public.plain-text",
    "public.item",
    "public.text",
    "public.data",
    "public.content",
    "public.plain-text"
)
kMDItemDateAdded               = 2018-01-09 12:48:36 +0000
kMDItemDisplayName             = "2018-01-09.txt"
kMDItemFSContentChangeDate     = 2018-01-09 12:48:31 +0000
kMDItemFSCreationDate          = 2018-01-09 12:48:31 +0000
kMDItemFSCreatorCode           = ""
kMDItemFSFinderFlags           = 0
kMDItemFSHasCustomIcon         = (null)
kMDItemFSInvisible             = 0
kMDItemFSIsExtensionHidden     = 0
kMDItemFSIsStationery          = (null)
kMDItemFSLabel                 = 0
kMDItemFSName                  = "2018-01-09.txt"
kMDItemFSNodeCount             = (null)
kMDItemFSOwnerGroupID          = 20
kMDItemFSOwnerUserID           = 501
kMDItemFSSize                  = 6728
kMDItemFSTypeCode              = ""
kMDItemKind                    = "標準テキスト書類"
kMDItemLogicalSize             = 6728
kMDItemPhysicalSize            = 8192

おしまい

他にも、QLPluginsというのは沢山あるので調べてみると良いでしょう。
テキスト選択してコピーできるものもあるようなので、重宝しそうです。

コメントを残す