【问题标题】:Execute current Rmarkdown chunk and move to next one in RStudio执行当前 Rmarkdown 块并移动到 RStudio 中的下一个块
【发布时间】:2021-04-02 17:03:21
【问题描述】:

RStudio 有一个原生功能(和键盘快捷键)来运行 Rmarkdown 中的 next 块并将光标移动到它(Ctrl + Alt + N)。我希望能够运行 current 块并将光标移动到下一个块。我只想连续运行每个块,而不跳过第一个块,并查看我将要运行的内容。有没有办法做到这一点?我必须写一个插件吗?

【问题讨论】:

标签: r-markdown rstudio keyboard-shortcuts


【解决方案1】:

这是一个迟到的答案。但对寻找它的人仍然有用。 从ctrl + alt + c 开始,然后继续点击ctrl + alt + n。它会做你想做的事

【讨论】:

    【解决方案2】:

    现有的Execute Next Chunk 命令的行为困扰了我很长一段时间。

    执行当前块然后移动到下一个块的开头的一种解决方法使用shrtcts包,它允许您将键盘快捷键分配给任意R代码,结合rstudioapi 包:

    1. 在 RStudio 控制台中使用命令 shrtcts::edit_shortcuts() 打开您定义自定义快捷方式的文件。

    2. 将以下代码粘贴到该文件中(在@shortcut 行中设置您的首选键绑定):

      #' Run Current Chunk and Advance
      #'
      #' @description Run Current RMarkdown Chunk and Advance to Next Chunk
      #' @interactive
      #' @shortcut Ctrl+Shift+Enter
      function() {
        rstudioapi::executeCommand(commandId = "executeCurrentChunk")
        rstudioapi::executeCommand(commandId = "goToNextChunk") |>
          capture.output() |>
          invisible()
      }
      

      此解决方案使用本机管道|>,因此需要R 4.1。 当然,您可以只在每一行中定义单独的变量,或者如果您使用早期版本的 R,则使用 magrittr 管道。

    3. 在 RStudio 控制台中使用命令 shrtcts::add_rstudio_shortcuts(set_keyboard_shortcuts = TRUE) 添加新的快捷方式及其分配的键绑定。然后重启 RStudio。

    这种方法的一个潜在缺点是您不能按例如Ctrl+Shift+Enter 提前多次,即使第一个块自该行以来仍在运行

    rstudioapi::executeCommand(commandId = "goToNextChunk")
    

    仅在之后执行

    rstudioapi::executeCommand(commandId = "executeCurrentChunk")
    

    已经结束了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-28
      • 2021-04-02
      • 1970-01-01
      • 2014-05-25
      • 1970-01-01
      • 2017-03-02
      • 2021-09-15
      • 1970-01-01
      相关资源
      最近更新 更多