ひまつぶし雑記帖

CotEditorからapplescript経由でperlへ

2015/9/7 [18:53:38] (月) 天気

applescriptというのを初めて触ってみた。
平文でわかりやすいシェルスクリプトて感じ、かな。

WINDWOSのxyzzyでやってるのと同じこと、ほぼ近いことをmacのCotEditorでもやりたい、ということでスクリプトメニューにperlのスクリプトを登録。これは気軽手軽に思ったことができるのでありがたい。外部のスクリプト、perlじゃなくてもrubyやphp、シェルスクリプトが使えるなら万能だ。

ということでやってたんだけど。

外部スクリプトはひとつにして、スクリプト内で処理を振り分けたい。処理単位でスクリプトを作ってスクリプトメニューに登録するとキリがない。それには対話的にユーザー入力をスクリプトで受け取りたい。ユーザーが入力したテキストでも処理を振り分けたい。
→ユーザーの入力を受け取る仕組みが必要。

CotEditorが外部スクリプトの処理した内容を受けとるのは編集中のテキスト上か、あるいは使わないかの2択だけど、外部スクリプトは必ずしもフィルタ的な用途だけじゃない。処理した結果(出力内容じゃなくて、戻り値みたいなもの)を受け取って確認するだけ、とか、選択範囲を処理してその部分をWEBの管理ページにペーストするだけ、とか、できれば元テキストはそのままの状態にしておいて欲しいということもある。
→作業用の新規ドキュメントがあれば助かる。

どちらも、perlやシェルスクリプトなどの外部スクリプトではちょっと難しそう。ていうか、スクリプト側からではアクセスできないこと、かな。

なので、ちょっと調べてみた。
applescriptを使えば、ユーザー入力を取得するdialogを出せる、CotEditorに新規ドキュメントを開くように言うこともできる。

1)テキストに選択範囲があったらば。
dialogを出して、選択範囲のテキストに対してどんな処理をするのか指示を受けとる。
スクリプトに入力されたテキストを引数として渡す。選択範囲のテキストはechoで出力してパイプでスクリプトに流しこむ。
2)選択範囲がなかったら。
ファイル名、パスを見てどんな処理をするのか判断する。
スクリプトにはフルパスのファイル名を引数として渡す。
どちらの場合も出力先は新規ドキュメント「名称未設定」とする。

ごそごそ調べて書いたapplescirpt

↑これを「util-perl.@p.applescript」という名前にして、「~/Library/Application Support/CotEditor/ScriptMenu」フォルダに入れておけばCotEditorで作業していていつでも呼び出せる。

自分環境・自分作業内容に特化したスクリプトで、誰にとっても有用・便利に使えるものではないけど、applescriptにはまったく馴染みがないので、備忘録としてメモしておこう。

明日にはもう忘れているであろう自分のためにもメモが必要なのだ。

[09/07 20:56:44]ちなみに。
applescriptの「do shell script」はスクリプトの標準出力を取得している。
たとえば、perlのスクリプトチェックの「perl -wc」は標準エラー出力。applescriptに出力させるには標準エラー出力(STDERR)を標準出力(STDOUT)に向けてやる必要がある。

perlのスクリプトの中で
open STDERR, ">&", *STDOUT
この1行を該当するサブルーチンに入れておく必要がある。


image 

»電子書籍制作代行についてはこちら

profile

profile

 
doncha.net
contact:
»運営者
@t2aki@tokoroten.doncha.net

ため池

[2025/02/19 16:19]
こういうのを見ると性善説も悪くないよなあ、と思う。猫すげーよ

[2025/02/19 16:16]
Youtubeで、「Prison Cat」を検索して出てくる動画がどれもこれも素晴らしくって。
入れ墨だらけの白人黒人有色人種問わず、おっかないマッチョなおっさんにあんちゃんたちが猫にメロメロにされてる動画ばかりでいつまで ...

[2025/02/19 14:33]
橋の上から自撮り風。
欄干から飛び降りするんじゃないかと心配される歳になってるから気をつけよう(なにを
#fz45

@t2aki@tokoroten.doncha.net

検索
<<2025/2>>
      1
2345678
9101112131415
16171819202122
232425262728

リンク

WINDOWS版サウンドノベル
おかえりください PC WINDOWS版サウンドノベル
『おかえりください』体験版