RStudio 中的代码折叠:在代码中创建层次结构

Posted

技术标签:

【中文标题】RStudio 中的代码折叠:在代码中创建层次结构【英文标题】:Code folding in RStudio: Creating hierarchy in the code 【发布时间】:2016-10-16 15:59:52 【问题描述】:

我在 RStudio 中编写 R 脚本,我经常使用 code folding。我发现你可以通过按 cmd + shift + O 来查看折叠的层次结构。这非常有帮助。

# to my dear love ---------------------------------------------------------
2+2 
# yo man ====
x.2 = function (x) x+2

### I do love potatoes ####

cmd + shift + O查看结果。

我不明白这是如何工作的,因为当我编写下面的代码时,我可以创建一个没有文本的小节,但当其中有文本时则不能(使用 # ==== 而不是 # yo man ====)。

# to my dear love ---------------------------------------------------------
2+2
# ==== 

# yo man ====

### I do love potatoes ####
x.2 = function (x) x+2
data = "here is some data"

cmd + shift + O 查看结果。

您可以看到# to my dear love --------------------------------------------------------- 下的所有内容都向右移动了!这很酷!

    因此,问题是,如何创建包含文本的部分层次结构? 是一个特殊的包还是 Emac 这样做?如何使用文本创建小节,并在 cmd + shift + O 框中查看层次结构? 如何通过降低右侧框中的视觉层次结构将部分(转到较高部分(例如第 2 部分)到较低部分(第 1 部分)下移?

【问题讨论】:

为了创建视觉层次结构(只是为了大纲面板的好处)我使用大写的部分# SECTION1 ----和'.'+空格小写的小写# . Subsection1.1 ----。它不会影响折叠,但会创建一个视觉结构。 有一个开放的 GitHub 问题请求添加对 Rstudio 中的小节/子标题的支持。要支持此请求,请参阅此处:github.com/rstudio/rstudio/issues/4124 现在可以使用 RStudio v1.4 blog.rstudio.com/2020/12/02/rstudio-v1-4-preview-little-things 【参考方案1】:

根据克里斯的回答subheaders within functions

RStudio 代码折叠层次结构仅适用于函数定义和 if-else 结构。例如:

# Section 1 ----
a <- 1

testfunct1 <- function () 
# sect in function=====
  b <- 2
  c <- 3


# Section 2 #####
d <- 4

# Section 3 =======
e <- 5

testfunct2 <- function () 
  # sect in function 2 =====
  f <- 6
  testsubfunct2_1 <- function () 
  # sect in subfunction 2_1 -----
    if (a == 1) 
      # section in if ----
      g < 7
     else 
      # section in else ----
      h = 8
    
   


# Section 4 ####
j <- 9

产生这个大纲:

我不知道为什么 if-else 部分标签不对齐。

【讨论】:

以上是关于RStudio 中的代码折叠:在代码中创建层次结构的主要内容,如果未能解决你的问题,请参考以下文章

SQL - 在 PARTITION BY 语句中创建层次结构

在 Rstudio 中创建新项目的脚本

在层次结构中创建类的指针数组

如何在 django 模板的引导程序中创建可折叠卡片?

如何在 Team Foundation Server 2018 中创建层次结构?

如何从字符串数组在 json 字符串中创建层次结构?