ターミナルで起動している対話型プロセス(例えば gnuplot や Octave のように独自のコマンドラインインターフェースを提供するアプリケーション) に mi で選択しているテキストを送って実行することができます。
コマンドの履歴を残しながら作業したり、部分的に少しずつ実行しながらプログラムを組み立てていく際に非常に便利です。
ツール「選択範囲を送る」を実行すると、ターミナルでファイルの先頭で設定されているコマンドが起動され、mi で選択されているテキストがプロセスに送られます。ターミナルは、「* Inferior コマンド名 *」という名前が自動的に割り振られます。このターミナルは同じコマンドが設定されているファイルで共有され、いくつもの対話型プロセスを起動していても、適切なプロセスが起動しているターミナルにコマンドを送ることができます。一方、特定のファイル専用のターミナルを作ることもできます。
対話型プロセスにコマンドを実行させるには、事前にいくつかの準備を行う必要があります。
デフォルトの設定は、ツール「UnixScriptTools の設定」で開かれる設定ウインドウの「コマンドと対話プロセス」で行います。ファイルごとに違った設定を行いたいときは、ヘッダーコマンドを使います。ヘッダーコマンドが設定されていると、設定ウインドウでの設定に優先して使われます。
ファイルでの設定がなければ、設定ウインドウで設定されているコマンドが使用されます。対話コマンドとしてしようされる、コマンドは以下の優先度で決定されます。
ターミナルでスクリプトを実行可能かどうかはプロンプトで判断されます。モードごとに正規表現を使って設定します。ターミナルの最後の行の先頭が、プロンプトとして設定された正規表現にマッチすると、ツール「選択範囲を送る」で、ターミナルにコマンド送ることができます。
プロンプトの設定は、ツール「最後の結果を挿入」でも使用されます。
ヘッダーコマンド「#prompt」を使うと、ファイルごとにプロンプトの設定を行うことができます。
正規表現エンジンには RegexKitLite を用いております。使える正規表現は ICU ライブラリ のマニュアルを参照してください。
ツール「選択範囲を送る」は、対話型プロセスと協調してスクリプトを書くときの最も基本的なツールです。
対話型プロセスを起動して、そのプロセスに mi で選択されているテキストをコマンドとして送り込みます。既に対話型プロセスが起動しているターミナルがある場合には、そのターミナルでコマンドを実行します。
選択範囲が無い場合はキャレットがおかれている行を選択範囲とします。
ツール「最後の結果を挿入」を使うと、ターミナルの最後の出力結果をコメントアウトした形でファイルに挿入することができます。記録を残しておくのに便利です。プロンプトによって「最後の結果」をターミナルから抽出するので、プロンプトの設定が適切に行われている必要があります。
通常は、一つのコマンドにつき一つのターミナルが起動され、複数のファイルで共有されますが、特定のファイルに占有されたターミナルを作ることができます。次のようにファイルの先頭にヘッダーコマンド #useOwnTerm を書いておくと、専用のターミナルがつくられます。このターミナルに他のファイルからのコマンドが実行されることはありません。ターミナルのタイトルには、そのターミナルを占有しているファイル名が含まれます。