是否可以使用 R 代码与 RStudio IDE 本身的元素进行交互?

Is it possible to interact with elements of the RStudio IDE itself using R code?

是否可以使用其中的 R 代码与 RStudio 应用程序交互?我指的是诸如打开卡片中的文件、为新的未保存文件创建选项卡或更改打开的选项卡中的某些文本等交互。

我知道只需创建一个新的文本文件或使用 R 更改其内容就可以获得非常相似的东西,但这样它就不会与 RStudio 应用程序本身交互。

一些上下文:我在想一个可以自动插入一些代表/代码片段的工具,它可以作为一行代码工作,当来自文件的 运行 时,用一段代码替换自己代码或制作一个新的未保存文件选项卡并在其中放入一些代码。是的,我知道可以通过其他方式实现非常相似的事情(例如,只需将预期的代码块复制到剪贴板中),但我很好奇并探索了可能性。

感谢 Konrad Rudolph 提供的 link,我自己找到了答案。

RStudio 中内置了一个名为 rstudioapi 的包,它允许许多不同的功能,并且不需要使用插件或加载项。

所有功能都可以在 official manual.

中找到

打开一个新的未保存的文件选项卡,里面有一些代码可以通过运行:

获得
rstudioapi::documentNew(
      "example code here",
      type = "r",
      position = rstudioapi::document_position(0, 0),
      execute = FALSE
    )

插入代码可以使用 insertText(text = "") 轻松完成,它会在文本光标的当前位置插入 text

换行可以通过组合getActiveDocumentContext()来实现,其中returns其中文档内容和选择范围基本等同于光标位置。然后可以通过 modifyRange() 分别对光标位置 and/or 文档内容进行更改。

这允许许多可能性,例如包括一些更顺畅的工作流程自动化。