シェルスクリプト機能について

ツール、もしくは、ツールボタンが、#!で始まるテキストファイルであった場合に、 それをUNIX上でシェルスクリプトとして起動させることができます。

まず、環境設定ウインドウ→ツールタブ→#!で始まるツールをUNIXシェルスクリプトとして実行する をOnにしてください。

そして、ツールにシェルスクリプトを記述します。ツールの作成方法は、通常のツールと変わりません。 ただし、改行コードを必ずLFに設定してください。

例えば、次のように記述されたツールを実行すると、現在のプロセス情報を新規ドキュメントに表示します。 (ツールにコピー&ペーストすれば実行できますが、改行コードをLFに設定すること、最後の行にも改行が必要なこと、に注意してください。)

#!/bin/tcsh
#new
ps -aux

シェルスクリプトに渡される引数

シェルスクリプトには以下の引数が渡されます。

引数説明
第一引数

編集中のファイルのパス(UNIX形式のパス)

第二引数

選択中の文字列(テキストエンコーディングはUTF-8)

シェルスクリプトの記述方法

1行目には、#!の後に、実行するコマンド(シェル)を記述して下さい。

2行目には、#の後に、以下の表のオプションを記述することにより、miの動作を指定することができます。
複数のオプションをスペースで区切って記述することが可能です。同時に実行できないものは後の記述の方が優先されます。

オプション説明
replace_all

現在編集中のドキュメントの内容全てを、シェルスクリプトの標準出力の内容に置き換えます。

replace_selected

現在編集中のドキュメントの選択範囲を、シェルスクリプトの標準出力の内容に置き換えます。

new

新規ドキュメントを開いて、そこにシェルスクリプトの標準出力の内容を表示します。
環境設定ウインドウ→ツールタブ→標準出力を表示するモード により、どのモードで新規ドキュメントを開くかを設定することができます。

window xxx

xxxというタイトルのウインドウに標準出力の内容を表示します。
(xxxは改行、タブ、スペースを含まない任意の文字列)
ウインドウが存在していない場合は新規作成します。

timeout=n

miはシェルスクリプトの終了まで処理をブロックするのですが、timeoutオプションを設定すると、終了待ちのタイムアウトをn秒間に設定します。

send_selected_maccode

第二引数に渡す文字列を、現在のフォントに従ったMacOSレガシーのテキストエンコーディング (日本語フォントならShift_JIS)で送信します。
このオプションを指定しない場合は、UTF-8で送信されます。

result_encoding=xxx

シェルスクリプトが返す標準出力のテキストエンコーディングがxxxであることをmiに指示します。
miはこのオプションに従って、標準出力をmi内部のテキストエンコーディングに変換します。
このオプションを指定しない場合は、テキストエンコーディング自動認識を行いますが、 文字数が少ない場合は文字化けする可能性があります。