How My Heart Sings

Tue, 14 Jun 2005

CotEditor用のスクリプトを書いてみるそのに

CotEditor用のスクリプトを書いてみる。の続きをもうちょっとだけ。

今まで試してきたスクリプトはどれも、最前面のウィンドウにおいて結果が選択されたままになるのですが、続けてテキストを入力していくのにその状態では都合が悪い場合もあるわけです。…サンプルに、処理後にキャレットを移動するものがありました。

--
property newStr : "TEMPLATE"
--
--
tell application "CotEditor"
    if exists front document then
        set {loc, len} to range of selection of front document
        set numOfMove to count of character of newStr
        set contents of selection of front document to newStr
        set range of selection of front document to {loc + numOfMove, 0}
    end if
end tell

サンプルを元に書いたものを次に挙げます。元ネタはどっかから拾ってきた、Internet Timeを出力するスクリプトです。どこで改行するか、どのようにエスケープするか、どのようにクォートするかとかで悩みました。それにしても、AppleScriptの文法は苦手です…

tell application "CotEditor"
    if exists front document then
        set {loc, len} to range of selection of front document
        set (contents of selection of front document) to (do shell script "/usr/bin/perl -e 'if ($0 eq __FILE__) {
    print &Bdate.\"\\n\";
}

sub Bdate
{
    local($time)  =  @_;
    local($beat);
    $time = $time || time;
    local($sec, $min, $hour) = (gmtime($time+60*60*1))[0..2];
    $beat = ((($hour * 60 + $min) * 60 + $sec) / 86.4) % 1000;
    sprintf(\"@%03d\",$beat);
}
1;'")
        set numOfMove to count of character of selection
        set range of selection of front document to {Loc + numOfMove, 0}
    end if
end tell

大体において、やりたいことが出来そうなのが分りました。

Meta Infomation of this entry

You can add this Entry to your  はてなブックマーク and Delicious

Comments

Add Comment...

スパム対策のため、一ヶ月を経過したエントリにはコメントを書き込めないのです…後、http:と書くこともできません。

Name:

Comment:

Le violon intérieur....
Yasuo Yamashita
vaiorinnhiATTOnaDOTrimDOTorjye-pi-
Y.A.S.U.O Ytterbium Artificial Sabotage and Utility Organism Y.A.S.U.O Yelling Abomination from the Sunless Underground Oasis

Pyblosxom and plugins. For detail, see http://viole.sakura.ne.jp/blosxom/blosxom.cgi/plugin_info