UNIXスクリプトとの連携

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

ファイルパスの受け取り

最前面の書類が保存済みの場合は、その書類の絶対ファイルパスが引数 (argv) としてスクリプトに渡されます。

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

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

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

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

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

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

以下のPythonスクリプトは最前面書類の選択範囲内のすべての行の行頭に“>”を追加します。

#!/usr/bin/env python
# %%%{CotEditorXInput=Selection}%%%
# %%%{CotEditorXOutput=ReplaceSelection}%%%

import sys
for line in sys.stdin:
    print(">" + line.rstrip())

ほかにも、以下のサイトから様々なサンプルスクリプトを入手することができます:
coteditor/SampleScripts -GitHub

関連項目