21 他のアプリケーションからTextMateを使用する

21.1 シェル/ターミナル

Mac OS Xにはopenが付属します。このシェルコマンドはTerminalからダブルクリックをシミュレートします。引数-aを使うことによってOpen With…の動作をすることもできます。例えば、open -a TextMate .で現在のフォルダを(まっさらのプロジェクトを)TextMateで開きます。

この標準的なコマンドにはいくつかの欠点があります: 一回に一つのファイルしか開くことができないこと、個別の行のドキュメントを開くことができないこと、ファイルが閉じられるまでシェルを"ストール"させておくことができないことなどです。Subversionのコミットメッセージのようなものを書く際にエディタを使う際に、ストールさせておくと役に立ちます。。

こういうわけで、TextMateにはmateというシェルコマンドが付属します。このコマンドはopenコマンドにとってかわります。使い方は(ターミナルで)mate -hを実行してください。

mateコマンドはTextMateアプリケーションバンドルの中にあります。なので、("インストール"するよりも)、コマンドに対して、シンボリックリンクを作成することが推奨されます。そうすることで、もしコマンドが将来アップデートされても、アップデートされたコマンドを再インストールする必要がありません。

シンボリックリンクを作成するには、メニューからHelp → Terminal Usage… を選択するか、もしくは、次のようなコマンドをシェルで実行することでできます:

ln -s /Applications/TextMate.app/Contents/Resources/mate ~/bin/mate

これは、あなたがパスに~/binを設定していて、なおかつTextMateが/Applicationsにインストールされていることを前提としてます。

このリンクを作った後、TextMateを他のアプリケーションの外部エディタとして使うためのシェル変数を設定する必要があるでしょう。

21.1.1 一般的な EDITOR 変数

EDITOR変数は、svn(subversoin)やCVSのようなたくさんのシェルコマンドで使われます。TextMateをEDITOR変数のエディタとして使うには、次のようにセットしてください(bashユーザは~/bash_profile、zshユーザは~/zshrcのように):

export EDITOR='mate -w'

TextMateがファイルを閉じるまで、コマンドを再会するのを待たせるために-wを加えました。

EDITOR変数で引数をサポートしないコマンドがあります。それは、crontabです。(crontablaunchdがあるためあまり使われませんが。)もし使う必要があれば、mateに、-wを意味する_waitと追加して、シンボリックリンクを作成することができます。例えば:

ln -s mate ~/bin/mate_wait   # run this once to create the link
export EDITOR='mate_wait'    # use in your ~/.bash_profile

21.1.2 Git エディタ

Gitレポジトリにコミットすると、キャレットが最初の行にないことに気づくかもしれません。

これは、Gitがコミットメッセージに使うテンプラリファイルを再利用して、TextMateが(拡張属性経由で)ファイル毎にキャレットを保存するからです。

Gitエディタをmate -wl1に設定することで、この問題を回避できます。こうして、最後に位置していた場所ではなく、1行目にキャレットが位置していた状態でTextMateはファイルを開きます。

このようにGitを設定するには、GIT_EDITOR変数を設定するかGitのcore.editorの設定変数を指定してください。

21.1.3 TeX エディタ

TeXがファイルに関するエラーメッセージを表示する際、eを押すことで、ファイルを編集(し、エラーを訂正)することができます。

TextMateがこのように使われるように設定するためにはTEXEDIT編集を次のようにしてください:

export TEXEDIT='mate -w -l %d "%s"'

21.1.4 lessでの編集

lessページャーはvを押すことで、そのファイルを編集することができます。TextMateをlessで使うためには、LESSEDIT変数をする必要があります:

export LESSEDIT='mate -l %lm %f'

21.2 URLスキーム (HTML)

txmtというURLスキームを使うことによって、例えば、HTMLドキュメント(アンカー)の中にあるハイパーリンク経由でTextMateでファイルを開くことができます。ローカルのファイルを参照できるので次のようなときに役に立ちます:

  1. HTMLアウトプットと一緒にコマンドを使って、現在のドキュメントエラーや警告を表示するしたり、プロジェクトの他のドキュメントを参照する。

  2. あなたが、同じような(テキスト)ファイルから、1セットのウェブページを生成しているときオリジナルのテキストファイルにリンクを張ることができます。なので、(ブラウザで)生成された結果を調べている時に、txmt:リンクを追っていくことでそれぞれのページのソースをすぐに編集できます。

URLスキームはtxmt:で現在はopenというコマンドを使っています。このコマンドには3つまでの引数を使えます:

  • url — (url=file://~/.bash_profileのような)開く(ファイル)URL。もし設定されてなければ、現在のドキュメントがターゲットになります。

  • line — ファイルが開かれた後に、どのラインにキャレットが置かれるか(例えば、line=11

  • column — ファイルが開かれた後に、どのカラムにキャレットがくるか(例えば、column=3

txmt:のURLの完全な例として、(テストのためにこちらをクリックしてください):

txmt://open/?url=file://~/.bash_profile&line=11&column=2

21.3 ODBエディタスイート

TextMateはODBエディタスイートのサーバーサイドを実装しています。このことによって、そのプロトコルのクライアントサイドを実装しているプログラムの外部エディタとして使うことができます。

しかしながら、どのテキストエディタがプロトコルを実装しているをりすとをハードコードしています。よって、もし、ODBエディタスイートをサポートしているアプリケーションの外部エディタのリストにTextMateがない場合は、そのアプリケーションの作者に、サポートされているエディタのリストにTextMateを加えるようにリクエストしないといけないかもしれません。

外部テキストエディタとして設定できるアプリケーションを追跡するwikiページあります。

21.4 Cocoaテキストフィールド

TextMateには(Mailで使われているのを含めて)TextMateをスタンダードCocoaテキストエディタコントロールからTextMateを呼び出すことができる、"Edit in TextMate"というインプットマネージャーが含まれます。これは、Safariのフォーム要素のように、ODBエディタスイートを実装しないプログラムで使うときに便利です。

詳しい情報は、(ステータスバーのギアメニューからアクセスできる)TextMateバンドルにあるInstall “Edit in TextMate”…を選択してください。実際にインストールする前に必要なドキュメンテーションをすべて提供します。[ActivatingBundleItems]: bundles#activationofbundle_items