更改 "Insert Section..." 的 RStudio 快捷方式

Change RStudio shortcut for "Insert Section..."

为了保持代码整洁,我喜欢使用代码段。在 Windows 上,新代码段的快捷方式是 ctrl+shift+R,在 MAC 上是 Cmd+shift+R。各部分的格式为

# <label> ---------------------------------------

但是当我使用 knitr 编写文档并包含来自 .R 文件的代码时,此格式与 knitr 对标签的期望不匹配。

例如当使用

read_chunk("foo.R")
<<label-a>>=
@

然后 foo.R 中的 label-a 前面必须至少有四个破折号 - - 例如

## ---- label-a ----
1+2
rnorm(2)

因此,如果能够更改 RStudio 中的键盘快捷键,以便它创建具有以下格式格式的代码部分,那就太好了:

## ---- <label> ----

这可能吗?

我在 RStudio 支持上问了这个问题,虽然没有直接的方法,但他们建议我可以使用代码片段功能:

https://support.rstudio.com/hc/en-us/articles/204463668-Code-Snippets

您可以将以下内容添加到片段中:

 snippet sec
 ## ---- ${1:label} ----
 ${2:}

$ 符号是占位符,可让您直接使用 .您只需输入 "sec",按 tab 键,代码段就会被填写,您写下您的标签名称,然后按 tab 键找到代码段。与您想要的不一样,但非常接近。它非常适合我。

我想做同样的事情,但更喜欢像 CTRL+SHIFT+R 热键那样根据标签长度自动生成长度。由于 R 现在可以在片段中求值:

snippet sect-
    `r strtrim(paste("#----",parse(text = "$$"),strrep("-",150)),120)`

要使用它,你可以输入“sect-label”,按SHIFT+TAB,它会自动生成“#----标签---------- -...”到 120 个字符的长度(我的 IDE 页边距长度)。

自动设置边距长度会很好,但是我找不到如何获取它的值。