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