我正在大量使用voodoopad和R.我想为voodoopad编写以下功能: 如果我在voodoopad中选择一些文本并键入(假设)Cmd-R,则所选文本将被评估为先前在终端会话中启动的R会话。
我有很好的编程和脚本编写技能,但对系统编程没有任何了解。如果有人可以给我一些关于如何实现这个项目的提示,或者甚至只是在合理的时间内将这个功能的可行性给我,我会很享受。
更新
这是一个用于向R会话运行给定命令“CommandLine”的AppleScript
set CommandLine to "plot(density(rnorm(10000)))"
try
tell application "R"
activate
with timeout of 90000 seconds
cmd CommandLine
end timeout
end tell
结束尝试
所以我想我现在需要的是能够将一个字符串从voodoopad传递给一个AppleScript并执行它。有谁知道怎么做?
答案 0 :(得分:0)
试试这个:
tell application "Voodoopad"
set commandLine to (current selection of window 1) as text
if commandLine is not "" then
tell application "R"
activate
with timeout of 90000 seconds
cmd CommandLine
end timeout
end tell
else
display dialog "Select a command first."
end if
end tell
也可以将commandLine设置为完整页面。
tell application "Voodoopad"
tell document 1
set commandLine to text of page 1
if commandLine is not "" then
tell application "R"
activate
with timeout of 90000 seconds
cmd CommandLine
end timeout
end tell
else
display dialog "Select a command first."
end if
end tell
end tell
显然,第一种情况下的选定文本或第二种情况下文档1的第1页需要包含有效命令。