折叠 R-Studio 脚本中的所有函数

Folding all functions in a R-Studio Script

基本上我已经在一个 R-Script 中编写了相当多的函数。为了创建更好的概览并且我不必滚动太多,我通常按下函数定义左侧的箭头,将其折叠。 对于超过 30 个函数,这可能会很烦人,因为当我 运行 它们时,它们会连续 "unfold"。 这张图可以看出折叠的意思

有人知道这个问题的键盘快捷键吗?

这不是折叠问题的直接解决方案,但导航大量脚本的更简单方法是使用源代码编辑器底部的下拉列表。它列出了活动 window.

中所有已定义的函数

在Rstudio中,您可以点击Edit -> Folding -> Collapse All

mac 上的 Command + Option + O 快捷键。

很遗憾,这似乎不可能。

我认为最好是学习一些规则来系统地应用: RStudio folding rules

可以使用“编辑 -> 折叠 -> 全部折叠”折叠的部分将是任何注释行(以 # 开头),其中至少包含四个尾部破折号 (-),等于符号 (=) 或井号 (#)

可以不折叠 { },而是按照 R 的预期插入该部分,然后使用“编辑 -> 折叠 -> 全部折叠”。

注意:这不适用于选定区域和“编辑 -> 折叠 -> 折叠”。

来自以下代码:

# function1 ####
function1 <- function(x){
    somecode <- 0
    test <- 3
    mean(c(1,2,3))
}
# function2 ====
function2 <- function(x){
    somecode <- 0
    test <- 3
    mean(c(1,2,3))
}
# function3 ----
function3 <- function(x){
    somecode <- 0
    test <- 3
    mean(c(1,2,3))
}
# function4 ####
function4 <- function(x){
    somecode <- 0
    test <- 3
    mean(c(1,2,3))
}
#### function5 ####
function5 <- function(x){
    somecode <- 0
    test <- 3
    mean(c(1,2,3))
}

我可以这样折叠:

如果总是使用相同的方式来定义函数,可以使用awk在每个函数定义之前实际添加一个部分:

awk '{ if( [=11=] ~/function/ ) { print "####" [=11=] "\n" [=11=] }else{ print [=11=]} }' code_function.R

来自文件中包含的以下代码code_function.R

function1 <- function(x){
    somecode <- 0
    test <- 3
    mean(c(1,2,3))
}
function2 <- function(x){
    somecode <- 0
    test <- 3
    mean(c(1,2,3))
}

我运行在一个(linux)终端:

awk '{ if( [=13=] ~/function/ ) { print "####" [=13=] "\n" [=13=] }else{ print [=13=]} }' code_function.R > code_function_withSections.R

并且我获得了以下文件——丑陋的文件——但是修改 10000 个函数文件的快速方法。

####function1 <- function(x){
function1 <- function(x){
    somecode <- 0
    test <- 3
    mean(c(1,2,3))
}
####function2 <- function(x){
function2 <- function(x){
    somecode <- 0
    test <- 3
    mean(c(1,2,3))
}