« xattrコマンドでクリエータタイプとファイルタイプを変更する | トップページ | Spacesの設定ファイル »

2010年8月14日 (土)

テキストエディットでShift JIS以外のテキストをダブルクリックで開けるようにする

Leopardのテキストエディット.appの仕様メモで述べたように、Leopard と Snow Leopard 上でダブルクリックによってテキストエディット.app で開くことができるテキストファイルは、「Shift JISのもの」、もしくは「BOM付きUTF-8」、もしくは「Leopard か Snow Leopard 上のGUI アプリで編集した、ファイルタイプがついていない」もの(Shift JIS、UTF-8、EUC、JISいずれも可)のみである。

後者の場合、GUI アプリで保存する際に「com.apple.TextEncoding」というメタデータがつけられるので、テキストエディット.app がそれを参照することで開くことができるものと思われる。

そこで、もし Tiger や Windows や Linux上で作成したテキストファイル、もしくは (Snow) Leopard 上のコマンドラインプログラム(Vi、Emacs など)で作成したテキストファイルを (Snow) Leopard 上でダブルクリックによってテキストエディット.app で開けるようにしたい場合、上記のメタデータを付け加えればよいということになる。

以下に、hogehoge.txt という UTF-8 テキストファイルに UTF-8 のエンコーディングのメタデータを付ける例を掲げる。

xattr -w com.apple.TextEncoding "utf-8;134217984" hogehoge.txt

クォーテーションマークは必須(セミコロンがシェルスクリプトの切れ目として認識されてしまうため)。

EUC-JP の場合、クォーテーションマークの間の部分は euc-jp;2336 になる。
JIS (ISO 2022-JP) の場合、クォーテーションマークの間の部分は iso-2022-jp;2080 になる。

Linux 上で作成した大量の EUC-JP のテキストをダブルクリックによってテキストエディット.app で開けるようにしたい場合、一つのフォルダに保存しておいて

xattr -w com.apple.TextEncoding "euc-jp;2336" *.txt

とすれば一括でメタデータをつけられるだろう。

« xattrコマンドでクリエータタイプとファイルタイプを変更する | トップページ | Spacesの設定ファイル »