如何获取未保存的脚本选项卡

How to get unsaved script tabs

我想知道,是否可以在 R studio 中获取未保存的脚本选项卡。我不小心打开并切换到新项目,然后我未保存的脚本就消失了。任何人都可以帮助获取我未保存的脚本选项卡。

我假设您使用的是 Rstudio。通常,它存储整个工作区,包括未保存的脚本和控制台历史记录,即使您不保存也是如此。

根据您是否 运行 文件,您可以通过两种方式检索这些脚本中的代码。

  • 如果您在控制台中执行了脚本,您的代码将出现在保存为 .Rhistory 文件 的控制台历史记录中,该文件存在于 R 控制台的主目录中.主目录是 'Documents' 文件夹或之前打开的项目文件夹。
  • 您可以尝试的另一件事是打开保存的脚本(如果有),该脚本在您切换到新项目时打开。这将打开在切换到新项目之前处于活动状态的工作区。您的文件应该在那里。

希望对您有所帮助。

如果有人仍在寻找答案或以后会寻找答案,请阅读下面的工作方法


据我所知,没有直接的方法可以恢复上次会话中或 Rstudio 崩溃之前未保存的脚本选项卡。项目文件夹通常包含隐藏文件夹 .Rproj.user 和许多子文件夹,source database 是其中之一(简称 sdb).在子文件夹 within sdb having the prefix "s-" 中,您可以找到几乎所有未保存的 JSON 格式的脚本选项卡。您可以复制并使用它们来获取未保存的脚本选项卡的内容。

例如,我有一个名为 BDFFFF92 的文件存在于项目位置 .Rproj.user/586F3E74/sdb/s-DB8D414F/

# reading the JSON file
dataObj <- jsonlite::fromJSON('.Rproj.user/586F3E74/sdb/s-DB8D414F/BDFFFF92', simplifyVector = T)

将出现在 JSON 对象的 contents 中。

# Printing the content from the JSON object
writeLines(dataObj$contents)

RStudio 项目起初可能会令人困惑。简单来说,RStudio 项目做了两件事:

  1. 打开一个可以跨不同用户和计算机操作的工作目录(例如,不以 setwd() 开头并与不同的本地路径产生冲突)
  2. 在 RStudio 中使用 R 文件、数据等创建工作区

不明显的是,RStudio 中的默认设置是在 "Project: (None)" 中创建脚本。

因此,如果您之前没有设置任何项目,要恢复丢失的脚本,您需要 return 到 "Project: (None)",其中包含与任何 RStudio 项目无关的所有开放工作。

为此,转到 RStudio 的右上角 window 并执行以下操作:

  1. 找到项目旁边的小下拉菜单。
  2. 单击小三角形以获取“项目”下拉菜单和 select "Close Project"。
  3. 新项目关闭后,您的旧选项卡应该会重新出现。下拉菜单现在还应显示:"Project: (None)"(同样,这假定您没有为之前的工作设置项目)。

对于即使使用 .Rhistory 也无法恢复脚本的所有人:

我可以在位于您的工作驱动器中的 "AppData" 文件夹 中恢复我的搜索。对于我的情况,它位于 "C:\Users\my_user\AppData\Local\RStudio-Desktop"。然后有一个名为 "history_database" 的 文件,用记事本打开它我可以 查看我以前的所有编码 .

如果你在 Rstudio 中重新打开这个文件,你可以看到它就像一个日志历史记录。如果它太大而无法看到所有条目,只需将其复制到记事本并使用 R (Ctrl + O) 再次打开它。我不知道为什么我在其他任何地方都没有看到这个替代方案...

我刚开始使用 R,因此为了重新排列脚本,我将 R 中显示的 "log-like history" 复制到 Excel,然后通过固定的文本到列将它们分开宽度。这对我有用,没有其他恢复方法。

如果您在 Windows,请转到文件夹:

C:\Users\[your user]\AppData\Local\RStudio-Desktop\sources

更新: 自 RStudio 1.4.* 起,这些来源已移至:

C:\Users\[your user]\AppData\Local\RStudio\sources

其余解释保持不变

如果你在 UBUNTU:

home/[your user]/.rstudio-desktop/sources

文件夹中有所有未保存的标签页,尤其是那些以 s 开头的标签页,例如 s-******

有两种文件(例如D395C3B4D395C3B4-contents
D395C3B4 文件包含 JSON 关于您未保存的选项卡的信息 (eg. "tempName" : "Untitled76") 并且您的相应代码在 D395C3B4-contents 文件中。
用记事本打开 D395C3B4-contents

我 运行 遇到 RStudio 未加载任何脚本的情况,none 上述建议有所帮助,但是,我可以看到 C:\Users\[your user]\AppData\Local\RStudio-Desktop\sources 下的所有文件。

对我有帮助的是删除了 lock_filerestart_file。此后,当我启动 RStudio 时,所有脚本都已加载。