ツール「フィルタースクリプトを表示」を実行すると、
以下のような フローティングパレット(スクリプトパレットと呼ぶことにします)が表示されます。
このパレットのリストボックスで表示されているスクリプトをダブルクリックするとスクリプトが実行されます(このパレットで扱うスクリプトをフィルタースクリプトと呼ぶ事にします)。表示の順番はドラッグ&ドロップで変更できます。
スクリプトは、
~/Library/Application Support/mi3/FilterScripts/Scripts
(このフォルダをフィルタースクリプトフォルダと呼ぶ事にします。)
の中のものが表示されます。フィルタースクリプトフォルダはスクリプトパレットを初めて表示したときに自動的に作成され、いくつかのサンプルが入っています。
リストボックスで表示されているフィルタースクリプトをダブルクリックすると、mi で選択しているテキストがスクリプトに渡されて実行されます。もし、mi の前面の書類で選択が無かった場合は、前面の書類の内容すべてが渡されます。
初期状態では、フィルター出力が(あるのならば) mi で新規ウィンドウが作られて表示されます。
チェックボックスの「選択範囲を置換」を選択すると、入力として選択されたテキストが実行結果で置き換えられます。
「新規スクリプト」ボタンを押すと、以下のようにスクリプトのテンプレートのリストおよび、スクリプト入力欄が表示されます。
初期状態では、AppleScript、perl、bash 用のテンプレートが用意されています。テンプレートは、
~/Library/Application Support/mi3/FilterScripts/Templates
の中のものが表示されます。このフォルダは初めて「新規スクリプト」ボタンを押したときに自動的に作られます。「Others」は空のファイルです。テンプレートとして用意されているもの以外を利用したい時はこれを選んで下さい。
スクリプトパレットから AppleScript を実行すると mi に選択中のテキストは run handler の 引数として渡されます。そして run handler の返り値がフィルタースクリプトとしての出力になります。典型的には以下のようなスクリプトになるでしょう。
フィルタースクリプトには、最前面の mi 書類で選択されているテキストが標準入力に渡されて実行されます。そして、標準出力がフィルタースクリプトの出力として扱われます。したがって、perl の場合の典型的なフィルタースクリプトは以下のようになります。
#!/usr/bin/perl use strict; use warnnings; while(<>) { "何らかの処理" print "$_に一行づつ選択されたテキストが与えられます。"; }
Unix スクリプトはログインシェルで実行されます。すなわち、環境変数等の実行環境の設定はログインシェルの設定で行うことができます。
フィルタースクリプトのウィンドウは、バックグラウンドアプリケーション「FileterScriptsPanel.app」によって提供されます。FilterScriptsPanel.app は mi のツールメニューから「フィルタースクリプトを表示」を実行すると起動します。最初の表示にはアプリケーションが起動していないので表示されるまでに時間がかかりますが、ウィンドウを閉じても「FilterScriptsPanel.app」が終了しないので、2回目以降はすばやく表示されるはずです。
「FilterScriptsPanel.app」は mi を終了すると自動的に終了します。ですから、ほとんどの場合は何も気にしなくてよいはずです。それでも、「FilterScriptsPanel.app」を終了させたい場合は、mi のツールメニューから「フィルタースクリプトを終了」を実行して下さい。