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

M. *_*eil 17 ide r folding rstudio

我在RStudio中编写R脚本,并且我使用代码折叠很多.我发现你可以通过按cmd+ shift+ 来查看折叠的层次结构 O.这非常有用.

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

### I do love potatoes ####
Run Code Online (Sandbox Code Playgroud)

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"
Run Code Online (Sandbox Code Playgroud)

cmd+ shift+ 查看结果O. 在此输入图像描述

你可以看到下面的# to my dear love ---------------------------------------------------------一切都转移到右边!这很酷!

  1. 那么问题是,如何才能创建包含文本的部分层次结构?
  2. 它是一个奇特的包装或Emac这样做?如何使用文本创建子部分,并在cmd+ shift+ O框中查看层次结构?
  3. 如何通过减少右侧框中的视觉层次结构来向下移动一个部分(转到更高的部分(比如第2部分)到下部(第1部分)?

Gre*_*g H 8

根据 Chris在函数中的回答子标题

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
Run Code Online (Sandbox Code Playgroud)

产生这个大纲:

代码大纲截图

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


小智 7

刚刚发现我可以在键盘顶部使用各种特殊字符与连字符相结合,以产生代码部分目录的分层外观。我为本示例选择了星号,但您可以使用顶部特殊字符键中的任何内容来产生这种外观。

在此输入图像描述