【问题标题】:How to access the script/source history in RStudio?如何访问 RStudio 中的脚本/源历史记录?
【发布时间】:2016-06-08 15:56:37
【问题描述】:

我想访问在 RStudio 的源面板中输入的内容的历史记录。

我对我们学习和键入代码的方式很感兴趣。我想分析的三件事是:i)一个人键入代码的方式,ii)不同的人如何键入代码,iii)初学者改进打字的方式。

以这种方式首次尝试获取命令的历史记录是相当令人满意的,但我希望达到更精细的粒度,从而访问连续的更改,一行中。 p>

因此,需要明确的是,我既不是在寻找 history of commands 也不是在寻找与 .R 文件的不同版本之间的差异。

我想访问的是当您递归按下Ctrl+Z 时可见的源面板的连续更改。我不知道我所描述的是否有更准确的词,但我再次感兴趣的是如何在源面板中添加/移动/删除/更正/改进代码位,但不必传递到控制台因此在命令的历史中不存在。

这必须是 RStudio 保存的某个地方/以某种方式保存,因为它可以被以后访问。这可能以非常隐藏/私有/内存/进程/...的方式保存,我对 GUI 的工作方式有一个非常模糊的概念。我不知道它是否易于访问,然后以编程方式分析,通常是如果我们可以从中保存文件。时间戳将是最重要的,但如果没有时间戳我会很高兴。

您知道如何访问此历史记录吗?

【问题讨论】:

  • 我不确定,您到底在寻找什么。但是,如果您正在搜索键入命令的历史记录,那么在 RStudio 中尝试 2 件事:1. 快捷键 Ctrl + 4 关注历史记录或 Ctrl+Shift+4 放大历史之窗。 Ctrl+Atl+Shift+0 恢复默认视图。 2. 将光标置于控制台并按键盘上的向上箭头 (▲,↑) 数次以找到您键入的命令。有用吗?
  • RStudio 将命令历史保存到.Rhistory。您可以使用文本编辑器打开它。但很可能您正在寻找更高级的东西。
  • 感谢您对@Vilmantas 的关注,但这不是我想要的。在 RStudio 中编程时,如果您按 Ctrl + Z,您会在源面板中看到添加/移动/删除的连续内容(不必传递给控制台 - 因此在命令历史记录中不存在)。这就是我感兴趣的内容。另外,我需要一种以编程方式访问此历史记录的方法,例如从文件或等效文件中。
  • 这是否甚至公开为 api 或文件?我严重怀疑这一点。它只能作为 api 公开,因为我认为 IDE 通常将历史记录(作为列表)保存在内存而不是磁盘中。不确定 RStudio,但我怀疑这是否可行。
  • "这甚至暴露为 api 或文件吗?" -> 似乎没有作为文件公开。而且我不知道内存是否可以访问。

标签: r rstudio


【解决方案1】:

RStudio 的源代码面板本质上是 Ace 编辑器的视图。因此,您需要访问编辑器会话的 editSession 并使用 getDocument 或 getWordRange 以及 editSession 的 undoManager 实例的撤消。

我不认为你会在 within RStudio 中这样做而不破解 RStudio 代码,除非将来 RStudio Addin api 用于传递编辑器事件。

在进行更改时编写会话记录器可能会更容易,而不是尝试弄乱撤消历史记录。我想您可以编写一个调用 javascript 的插件,以使用 Ace 编辑器的事件(即 onChange)通过现有的 RStudio 端口进行通信。

【讨论】:

  • 我不知道怎么做,但感谢一堆黑暗中的光。
猜你喜欢
  • 2010-12-21
  • 2011-12-11
  • 2014-06-10
  • 1970-01-01
  • 1970-01-01
  • 2010-09-08
  • 1970-01-01
  • 2020-06-02
  • 2022-10-15
相关资源
最近更新 更多