有没有``的RStudio快捷键? [英] Is there an Rstudio shortcut key for ``?
本文介绍了有没有``的RStudio快捷键?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在Rmarkdow上经常使用它来引用代码,所以我创建了一个插件,但想知道是否有快捷方式。如果不是这样,我该如何配置外接程序,以便在调用它时,插入符号或光标的位置位于两个符号之间,与在RStudio中使用""
或()
时完全一样。
insertInAddin <- function() { rstudioapi::insertText("``") }
是我用于外接程序的代码
我希望获得帮助,了解如何设置
rstudioapi::setCursorPosition()
和location
参数中的document_position()
。
推荐答案
您可以使用shrtcts包执行此任务。它允许您将键盘快捷键分配给任意R
代码。
通过键入例如
,创建一个新的in
(用于内联代码字体)并按Shift+Tab
:R Markdown
代码段,该代码段也可以单独使用snippet in `${1}`$0
使用RStudio控制台中的命令
shrtcts::edit_shortcuts()
打开您定义自定义快捷方式的文件。将以下代码粘贴到该文件中(在
@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
解决方案,以避免依赖关系。使用RStudio控制台中的命令
shrtcts::add_rstudio_shortcuts(set_keyboard_shortcuts = TRUE)
添加新快捷键及其分配的快捷键。然后重新启动RStudio。
cmd+e
将光标放在反标记内,然后在第二个反标记后按Tab
继续写入。
或者,您可以选择文本,然后按cmd+e
将所选文本用反记号括起来。上面的解决方案可以很容易地推广到RMarkdown文档中的粗体和斜体文本,或者写入美元符号以添加内联Latex Math。
这篇关于有没有``的RStudio快捷键?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文