「原稿」のスクリプト機能

基本的な考え方としては、

  • 標準入力で受けて標準出力に吐く

という古典UNIXスタイルを用います。例えば次は、選択範囲のテキストに「」を付けて会話文に変換するスクリプトです。

#!/bin/sh
#
# %%%{ManuscriptXInput=Selection}%%%
# %%%{ManuscriptXOutput=ReplaceSelection}%%%
/bin/echo -n "「"`cat`"」"

コメント行に面妖な文字列が書かれていますね。これが入出力の制御指定で、「原稿」がスクリプトとの通信をどのように行うか判断する為に必要なものです。

%%%{ManuscriptXInput=XXXXX}%%% というのは入力指定です。XXXXXには

  • None(何も渡さない)
  • Selection(選択範囲)
  • All(テキスト全体)
を指定できます。

同様に%%%{ManuscriptXOutput=XXXXX}%%%は出力指定で、

  • Discard(無視)
  • ReplaceSelection(選択範囲を置換え)
  • ReplaceAll(全文を置換え)
  • InsertAfter(選択範囲の直後に追加)
  • Append(テキストの末尾に追加)
  • Pasteboard(ペーストボードに追加)

を指定できます。

この例ではshのスクリプトを使っていますが、別にPerlだろうとRubyだろうとSchemeだろうと構いません。文字コードがUTF-8で、スクリプトの何処かに入出力指定が書かれていて、実行可能なファイルであれば機能します。

以上のようなスクリプトに名前を付けて、スクリプトフォルダに配置しておけばその項目がスクリプトメニューに表示されて利用可能になります。

スクリプトフォルダは~/Library/Application Support/Manuscript/Script以下ですが、スクリプトメニューの「スクリプトフォルダを開く」を選ぶと勝手に作成してくれるので、そちらから選ぶのが確実でしょう。

ところで、配置するスクリプト名はなんでもいいわけではなく、厳格なルールを持っています。といっても単純なものですが・・・

{ソート用文字列}-{メニュー項目の名前}-{ショートカット指定}.{好きな拡張子}

ソート用文字列はメニュー項目に表示される順番を決定します。一番単純なのは001-とか002-のように番号順に並べてしまう事でしょう。メニュー項目の名前はそのままの意味です。

ショートカット指定とは、「⌘Sで保存」というアレです。例えば「@[」と書いておくと「⌘[」で呼び出せるようになります。記号部の解釈ですが、

  • @ ⌘キー
  • # シフトキー
  • ~ optionキー
  • ^ コントロールキー

にそれぞれ対応します。ショートカットが必要ない場合は省略してもらって構いません。ただし、その場合でもハイフンは必要です。つまり「001-スクリプト名-.sh」のような形で保存します。

あと、メニューを階層化したい場合、同じ命名ルールでフォルダを作って下さい。同じルールでメニューも階層化します。

以上、駆け足ですがスクリプト機能の説明でした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です