# UNIX スクリプトとの連携

このページではスクリプトメニューから実行する UNIX スクリプトに CotEditor で編集中の書類の情報やテキストを渡したり、スクリプトの実行結果を書類に反映する方法を説明します。

- スクリプトメニューに登録できるスクリプトの拡張子は .sh .pl .php .rb .py です（言語は関係ありません）。
- スクリプトには実行権限がなければなりません。スクリプトに実行権限を付与するには、ターミナルを使用するか、または「Extras」フォルダに同梱の「chmod-755.app」をお使いください。
- スクリプト内の行末コード（改行コード）は LF でなければなりません。

## スクリプトにテキストを渡す

スクリプトに CotEditor からデータを渡すには、スクリプトの冒頭にコメントを置き、固定文字列「`%%%{CotEditorXInput=xxxx}%%%`」を埋め込みます。「`xxxx`」で、受け渡すデータを指定します。

`Selection` | 現在選択しているテキスト
`AllText` | 書類のすべてのテキスト
`None` | 何も渡さない（デフォルト）

- コメントを記述しなかった場合、「None」となります。
- CotEditor からのテキストは標準入力に渡されます。
- スクリプトに渡されるテキストの文字エンコーディングは UTF-8 です。

## スクリプトの出力を受け取る

CotEditor でスクリプトの出力を受け取るには、スクリプトの冒頭にコメントを置き、固定文字列「`%%%{CotEditorXOutput=xxxx}%%%`」を埋め込みます。「`xxxx`」で、受け取った後の処理を指定します。

`ReplaceSelection` | 現在選択しているテキストを出力内容で置き換えます。
`ReplaceAllText` | 書類のすべてのテキストを出力内容で置き換えます。
`InsertAfterSelection` | 選択範囲の直後に出力内容を挿入します。
`AppendToAllText` | 書類の末尾に出力内容を挿入します。
`Pasteboard puts` | クリップボードに出力内容を格納します。
`Discard` | 何もしない（デフォルト）

- コメントを記述しなかった場合、「Discard」となります。
- CotEditor に渡すテキストは、標準出力としてください。。
- CotEditor に返すテキストの文字エンコーディングは UTF-8 でなければなりません。

## 関連項目

- スクリプトメニューをカスタマイズする
- AppleScript との連携
- CotEditor スクリプトのファイル名規則