总的来说,我发现保存R历史记录非常有用。我每周或更多次提到它。控制台中的探索性工作逐渐完善并添加到文件中。

有时,命令中会包含一个 secret ,例如API密钥或使用机密信息搜索数据框,在这种情况下,我希望能够禁用仅为该命令保存的历史记录,并在之后立即重新启用它。尽可能类似于bash的 ignorespace 选项。

我很高兴能在R或RStudio中都可以使用的解决方案,两者都更好。我知道可以通过转到Tools > Options > General > Always save history来手动禁用历史记录,但是我正在寻找一个命令(或键盘快捷键),以便可以快速打开或关闭它。

编辑:我认为可能有用但似乎无济于事的某件事是将“R_HISTFILE”设置为FALSE或不存在的文件。至少没有帮助RStudio历史。我对它实际执行的检查还不够彻底。

最佳答案

正如我在评论中所述,有一些方法可以避免将API密钥存储在历史记录文件中。由于评论似乎已经收集了一些反对意见,因此值得在答案中进行扩展。

有时,命令中会包含一个 secret ,例如API密钥或使用机密信息搜索数据框,在这种情况下,我希望能够禁用仅为该命令保存的历史记录,并在之后立即重新启用它。

我认为,目前只能在RStudio的当前版本中找到针对“API密钥问题”的提示,请参阅以下段落的链接中的注释:“关于机密信息:”

但是,在等待灵魂沉思的同时,您可能会对此页面感兴趣:https://cran.r-project.org/web/packages/httr/vignettes/secrets.html

避免存储API密钥比我认为的data.frame的机密信息容易。

关于机密信息:

引入时间更长,但“干净”:
我认为有必要将其添加为功能强大的rstudioapi软件包的功能请求,或在此处添加:

  • https://support.rstudio.com/hc/en-us/community/posts/115000932128-RStudio-Config-Files
  • 相关信息:https://github.com/rstudio/rstudio/issues/1607(将使用户能够编写自己的插件)
  • 相关信息:https://community.rstudio.com/t/configure-rstudio-global-options-on-install/14881(将使用户能够编写自己的插件)

  • 快速介绍,但很脏:
    -一个肮脏的变通办法是引入一个插件来删除历史文件中的最后一个插入。

    信息存储

    此处描述了存储设置的位置:https://support.rstudio.com/hc/en-us/articles/200534577-Resetting-RStudio-Desktop-s-State

    您可以导航到Rstudio-desktop文件夹。例如。在Windows上,在资源管理器中输入:%localappdata%\ RStudio-Desktop。

    您要查找的全局选项可以在以下位置找到:.. \ monitored \ user-settings \ user-settings。

    Rstudio-工具-全局选项-常规中的标记“始终保存历史,...”是.. \ monitored \ user-settings \ user-settings中的第一个值。

    不幸的是,RStudio不会监听该文件中的更改,因此您必须重新启动RStudio才能使更改可见。因此,暂时不能停止Rstudio记录历史记录。

    关于API密钥,让我总结一下该页面的几种方法:
  • 添加一个“弹出窗口”以询问密码:rstudioapi::askForPassword()
  • 使用环境变量。您避免了弹出窗口,但我认为它只是将机密信息的日志记录从“历史记录”移到了envar。
  • 最后看到了keyring软件包,用于将数据存储在操作系统的 secret 存储区中。
  • 关于r - 暂时停止R记录历史,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55766460/

    10-12 23:49