【问题标题】:How to get unsaved script tabs如何获取未保存的脚本选项卡
【发布时间】:2016-05-15 09:18:46
【问题描述】:

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

【问题讨论】:

  • 有一个隐藏文件夹 .Rproj.user 。你看过了吗?
  • 隐藏文件夹在哪里
  • 如何将您的操作系统恢复到特定日期然后打开.Rproject(如果您已保存或找到历史文件)? ...在 Rstudio 中打开 .Rhistory
  • 关闭新项目或返回上一个项目,它们应该在那里
  • @rawr 我也相信未保存的脚本应该在那里,但不幸的是没有找到。你所说的行为我之前在 Rstudio 上也看到过。但这次我不确定出了什么问题,我无法在打开旧项目或做任何其他事情时获取未保存的脚本。

标签: r rstudio


【解决方案1】:

如果您使用的是 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 文件包含有关您未保存的标签(eg. "tempName" : "Untitled76") 的 JSON 信息,并且您的相应代码在 D395C3B4-contents 文件中。
用记事本打开D395C3B4-contents

【讨论】:

  • 这是救命的,对于不使用 RProject 的 Windows 用户来说可能是最好的答案(我感到羞耻)。谢谢!
  • 天哪,谢谢。不小心mv-ed 在 git-bash 中将一个文件放在另一个文件之上,并以为我丢失了它。你是救生员!
  • 谢谢,您为我节省了 3 个小时的辛勤工作和@pedrostrusso,我确实使用了 RProj(与 -contents 相同的文件)但关闭了它...
  • 嘿,我们也可以在 Rstudio 上打开那些 contents 文件,也可以直接通过 Open file 将它们插回原来的位置!非常感谢:)
  • 在 Ubuntu 中有类似的方法吗?
【解决方案2】:

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

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

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

希望这会有所帮助。

【讨论】:

  • 感谢您的 cmets。 1) .Rhistory 有一些代码,但看起来像垃圾,找不到文件。 2) 我之前看到的RStudio 的行为与现在的情况不同。我曾经在打开RStudio 时获得所有标签,但现在情况不同了。它只打开我要求RStudio 打开的那个脚本。
  • 尝试在 RStudio 而不是文字编辑器中打开 .Rhistory 文件。记事本或 NP++ 无法正确显示文件。
【解决方案3】:

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


据我所知,没有直接的方法可以恢复上次会话中或 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)

actual content in the unsaved scripts 将出现在 JSON 对象的 contents 中。

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

【讨论】:

  • 生活。保护程序。对于所有寻求答案的人,它就在这里。
【解决方案4】:

RStudio 项目一开始可能会让人感到困惑。简单来说,RStudio 项目做了两件事:

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

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

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

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

  1. 找到项目旁边的小下拉菜单。
  2. 点击小三角进入项目下拉菜单,选择“关闭项目”。
  3. 关闭新项目后,您的旧选项卡应该会重新出现。下拉菜单现在也应该显示:“项目:(无)”(再次假设您没有为之前的工作设置项目)。

【讨论】:

  • 这很简单,但却是一个救命的把戏。这应该被标记为答案。
  • 你刚刚救了我的命。为什么这没有出现在 Google 结果的顶部?为什么 RStudio 表现得如此奇怪,期望用户关闭项目以检索临时保存的脚本?生活充满了奇迹。
【解决方案5】:

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

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

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

我刚刚从 R 开始,所以为了再次重新排列脚本,我将 R 中显示的“类似日志的历史记录”复制到 Excel 中,然后将它们与文本到列分开固定宽度。这对我有用,没有其他恢复方法。

【讨论】:

    【解决方案6】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-07
      • 2022-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多