Sun, 17 Aug 2008
KEditとosascript
ひさしぶりにまっきんの話題。iMac買うたので。
KEditで使うために、以下のようなものを書いてみました。KEditからosascriptを使う、というもののとっかかりです。
#!/bin/sh
`osascript << EOF
on run
tell application "KEdit"
if not (document 1 exists) then
beep
return
end if
end tell
end run
EOF`
…帰ってきません。KEditがハングします。この例なら素直にAppleScriptで書けば良いのですが…こんなテストをしようとしたのは、次のようなAppleScriptを書こうとして、途中で面倒になってきたからです。リストを表示させて、その値によって挿入する文字列を変えようとしたのは良いのですが、ここからif文を延々書いていかなきゃならないのか、case文とか使えたら良いのに、AppleScriptじゃなくShellScriptだったら、と。あ、この例では、リストの返り値をそのまま文字列として挿入しています。
set aResult to ""
tell application "SystemUIServer"
activate
try
set myList to {
"Language=czech",
"Language=german",
"Language=english",
"Language=spanish",
"Language=french",
"Language=italian",
"Language=japanese",
"Language=latin",
"Language=polish"}
set aResult to (choose from list myList default items "Language=en") as string
on error
beep
end try
end tell
tell application "KEdit"
if not (document 1 exists) then
beep
return
end if
activate
tell document 1
set selectedText to selected text
if selectedText is not "" then set aResult to selectedText
set selected text to aResult
end tell
end tell
Comments
テキストの対応については、対応表を別のテキスフォファイルに格納して適宜読み出せばごちゃごちゃ分岐を書かなくて済む気がします。
最初の書き方は動かないということですか?ああっ、そこらへんをもうすこし詳しく…
Add Comment...
スパム対策のため、一ヶ月を経過したエントリにはコメントを書き込めないのです…後、http:と書くこともできません。