【3分レシピ】巨大ファイル用の軽量テキストビューアをMac OSXで作る


TL; DR (今北産業)

シェル(ターミナル)をAppleScriptで開いて less しているだけだよ! Σ( ̄□ ̄;)

  1. macOS 標準の Automator でアプリを作る。
  2. アプリのアクションで AppleScript を使って シェル(POSIX)コマンドを叩かせる。
  3. シェル・コマンドの内容はファイルを less で開いているだけ
    でも超軽量で超快速に表示するよ!

TS; DR なんちゃってMore or lessテキスト・ビューアー・アプリのレシピ

  1. Automatorを立ち上げ、アプリケーションの作成を選ぶ
  2. 「ライブラリ」-「ユーティリティ」-「AppleScriptを実行」を追加する
  3. 下記スクリプトを貼り付けてアプリを保存する
  4. 「実行」を試して「Drag and drop a file.」と表示されたら出来上がり

Less is more なスクリプト

on run {input, parameters}

	if input is not in {{}, {""}, ""} then
		tell application "Terminal"
			set pathFileInput to POSIX path of input
			set cmd to "less -N \"" & pathFileInput & "\""
			reopen
			activate
			set tabCurrent to do script (cmd) in front window
			display dialog "Press 'q' to quit and 'h' for help."
		end tell
	else
		display dialog "Drag and drop a file."
	end if
	
end run

2018/03/04:less-iMオプションを外しless -Nのみにしました。less-Mオプションを付けて、全体のどこらへんを表示しているのか確認できるようにしていたのですが、ファイル全体のサイズ(行数)をカウントをしてから触れるようになるため、Wikipedia などのギガ・サイズのファイルの場合、サクッと感が減るため外しました。

使い方

数百メガのテキスト・ファイルを、作ったアプリにドラッグ&ドロップ

基本操作

  • スペースでページ送り、Enterで行送り、マウス or トラックパッドでスクロール
  • 詳しく(ヘルプ)は h をタイプするか Qiita で調べる
  • 終了は q をタイプして、ターミナルを終了する

所感

PHP のマニュアルのアーカイブ(巨大なXMLファイル)の構文を見ようと Mac で開こうとしたら重いのなんのって。Windows みたいに大きいファイルでもサクッと開くだけの手頃(無料)で軽量なテキスト・ビューアーが探すのが面倒だった なかったので、lessコマンドに落ち着いたわけですが、どうせならアプリ(?)にしてみようと思って。