How My Heart Sings

Wed, 29 Jun 2005

CotEditor用のスクリプトを書いてみる、まとめ

取りあえず、これが最終形。悪い点は、日本語環境でしか動作しないこと。最後にAppleScriptに渡す時点でShift_Jisにしておくために変換をかけています。さらに、ダブルクォートとバックスラッシュをエスケープしています。また、選択範囲が空であっても大丈夫なようになっています。そもそもこんな風に混ぜ書きしなければ、何も問題無いのですが…それにしても醜いねぇ。

#! /bin/sh
# %%%{CotEditorXInput=Selection}%%%
# %%%{CotEditorXOutput=ReplaceSelection}%%%

INPUT=`osascript << EOF
    tell application "CotEditor"
        if exists front document then
            set myContentsOfSelection to (contents of selection of front document)
        else
            beep
        end if
        return myContentsOfSelection
    end tell
EOF`

TEMP=`echo ${INPUT} | \
    /usr/local/bin/lv -Iu8 -Os | \
    sed -e 's/\\\/\\\\\\\/g' | \
    sed -e 's/\"/\\\"/g'`

OUTPUT="<del datetime=\\\"`/usr/bin/ruby -e \
'print Time.now.strftime("%Y-%m-%dT%H:%M:%S\+09:00")'`\\\">${TEMP}</del>"

osascript << EOF
tell application "CotEditor"
    activate
    if exists front document then
        set {loc, len} to (range of selection of front document)
        set (contents of selection of front document) to "${OUTPUT}"
        set numOfMove to (count of character of selection)
        set (range of selection of front document) to {Loc + numOfMove, 0}
    end if
end tell
EOF

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