有没有``的RStudio快捷键? [英] Is there an Rstudio shortcut key for ``?

查看:0
本文介绍了有没有``的RStudio快捷键?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Rmarkdow上经常使用它来引用代码,所以我创建了一个插件,但想知道是否有快捷方式。如果不是这样,我该如何配置外接程序,以便在调用它时,插入符号或光标的位置位于两个符号之间,与在RStudio中使用""()时完全一样。

insertInAddin <- function() { rstudioapi::insertText("``") }是我用于外接程序的代码

我希望获得帮助,了解如何设置

rstudioapi::setCursorPosition()location参数中的document_position()

推荐答案

您可以使用shrtcts包执行此任务。它允许您将键盘快捷键分配给任意R代码。

  1. 通过键入例如in(用于内联代码字体)并按Shift+Tab

    ,创建一个新的R Markdown代码段,该代码段也可以单独使用
    snippet in
        `${1}`$0
    
  2. 使用RStudio控制台中的命令shrtcts::edit_shortcuts()打开您定义自定义快捷方式的文件。

  3. 将以下代码粘贴到该文件中(在@shortcut行中设置您的首选键绑定)。请注意,函数第二行中插入的文本必须与步骤1中的新代码段匹配:

    #' Code Font
    #'
    #' @description
    #'   If Editor has selection, transform current selection to code font.
    #'   If Editor has no selection, write between backticks.
    #' @interactive
    #' @shortcut Cmd+E
    function() {
      if (rstudioapi::selectionGet()$value == "") {
        rstudioapi::insertText("in")
        rstudioapi::executeCommand("insertSnippet") |>
          capture.output() |>
          invisible()
      } else {
          # Gets The Active Document
          ctx <- rstudioapi::getActiveDocumentContext()
    
          # Checks that a document is active
          if (!is.null(ctx)) {
    
          # Extracts selection as a string
          selected_text <- ctx$selection[[1]]$text
    
          # modify string
          selected_text <- stringr::str_glue("`{selected_text}`")
    
          # replaces selection with string
          rstudioapi::modifyRange(ctx$selection[[1]]$range, selected_text)
        }
      }
    }
    
    此解决方案使用原生管道|>,因此需要R 4.1。 当然,如果您使用的是R的早期版本,则只需在每行中定义单独的变量,或者使用magrittr管道。 此外,stringr::str_glue()命令可以轻松替换为基本R解决方案,以避免依赖关系。

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

现在,您可以使用例如不带选择的cmd+e将光标放在反标记内,然后在第二个反标记后按Tab继续写入。 或者,您可以选择文本,然后按cmd+e将所选文本用反记号括起来。

上面的解决方案可以很容易地推广到RMarkdown文档中的粗体和斜体文本,或者写入美元符号以添加内联Latex Math。

这篇关于有没有``的RStudio快捷键?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆