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

Code folding in RStudio: Creating hierarchy in the code

我在 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.[=18= 查看结果]

我不明白这是如何工作的,因为当我编写下面的代码时,我可以创建一个没有文本的小节,但当其中有文本时就不行(使用 # ==== 而不是 # 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 ---------------------------------------------------------下面的东西都往右移了!这很酷!

  1. 因此问题是,如何创建包含文本的部分层次结构?
  2. 这是一个特殊的包还是 Emac 做的?如何创建带有文本的小节,并在 cmd + shift + O 中查看层次结构箱子?
  3. 如何通过减少右侧框中的视觉层次来向下移动一个部分(转到更高的部分(比如第 2 部分)到更低的部分(第 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 部分标签不对齐。