-->

多行注释解决方法?多行注释解决方法?(Multiline Comment Workarounds?)

2019-05-12 23:44发布

我(在某种程度上)已经知道这个问题的答案。 但我想这是一个被问如此频繁地将R用户列表中,应该有一个坚实的很好的答案。 据我所知有在R.因此,没有多行注释功能,没有任何人有什么好的解决办法?

虽然相当多的R中的工作通常涉及互动环节(施放就需要多行注释疑问),有些时候我不得不送剧本给同事和同学,其中大部分涉及的代码块平凡。 而对于人们从其他语言是一种相当自然的问题。

在过去,我已经使用了引号。 由于串支持换行符,运行具有的R脚本

"
Here's my multiline comment.

"
a <- 10
rocknroll.lm <- lm(blah blah blah)
 ...

工作良好。 有没有人有一个更好的解决方案?

Answer 1:

这不来了邮件列表上相当有规律,见例如最近这次对R-帮助线程 。 舆论答案通常是上图所示的:即鉴于语言没有直接的支持,你必须要么

  • 使用具有区域对注释命令的编辑工作,而且大多数预研的编辑做
  • 使用if (FALSE)构造早些时候建议,但请注意,它仍然需要完整的解析和必须因此是语法正确


Answer 2:

您可以在轻松地做到这一点RStudio :

选择代码,然后单击CTR + SHIFT + C来注释/取消注释代码。



Answer 3:

对于RStudio我刚刚发现了一个巧妙的方法是使用#' ,因为这将创建一个自膨式注释部分(当你从这样的行返回新行或插入新行成这样的部分将被自动评论)。



Answer 4:

[更新]基于评论。

# An empty function for Comments
Comment <- function(`@Comments`) {invisible()}

#### Comments ####
Comment( `

  # Put anything in here except back-ticks.

  api_idea <- function() {
    return TRUE
  }

  # Just to show api_idea isn't really there...
  print( api_idea )

`)
####

#### Code. ####
foo <- function() {
  print( "The above did not evaluate!")
}
foo()

[原来的答案]

这里的另一种方式......在底部检查出的照片。 剪切和代码块粘贴到RStudio。

多行注释,使用户使用一个IDE 有效的是“好事”,大多数IDE或简单的编辑器不具有内简单的文字评论退房手续块的高亮显示; 尽管一些学者所花费的时间,以确保此串中解析。 其中r我们没有多行注释或在这里,无论是字符串,但在使用RStudio无形表达式给出了所有美好的事物。

只要有不希望被用于多行注释的部分中的任何反引号,这里串,或不执行注释块那么这可能是值得的东西,而。

#### Intro Notes & Comments ####
invisible( expression( `
{ <= put the brace here to reset the auto indenting...

  Base <- function()
  {      <^~~~~~~~~~~~~~~~ Use the function as a header and nesting marker for the comments
         that show up in the jump-menu.
         --->8---
  }

  External <- function()
  {
    If we used a function similar to:
      api_idea <- function() {

        some_api_example <- function( nested ) {
          stopifnot( some required check here )
        }

        print("Cut and paste this into RStudio to see the code-chunk quick-jump structure.")
        return converted object
      }

    #### Code. ####
    ^~~~~~~~~~~~~~~~~~~~~~~~~~ <= Notice that this comment section isnt in the jump menu!
                                  Putting an apostrophe in isn't causes RStudio to parse as text
                                  and needs to be matched prior to nested structure working again.
    api_idea2 <- function() {

    } # That isn't in the jump-menu, but the one below is...

    api_idea3 <- function() {

    }

  }

    # Just to show api_idea isn't really there...
    print( api_idea )
    }`) )
####

#### Code. ####
foo <- function() {
  print( "The above did not evaluate and cause an error!")
}

foo()

## [1] "The above did not evaluate and cause an error!"

而这里的PIC ...



Answer 5:

我能想到的两种选择。 第一种选择是使用编辑器,允许以块注释和取消注释(例如Eclipse的)。 第二个选择是使用if语句。 但是,这只会让你“注释”正确的[R语法。 因此,一个好的编辑器是首选的解决方法。

if(FALSE){
     #everything in this case is not executed

}


Answer 6:

如果觉得不可思议的是任何语言也不会满足于此。

这可能是最干净的解决方法:

anything="
first comment line
second comment line
"


Answer 7:

除了用overkilled方式只是通过安装RStudio,你可以用它来发表评论多行代码记事本+ + ,因为它支持R的语法高亮

(选择多行) - >编辑 - >注释/取消注释 - >切换块注释

请注意,您需要保存代码作为.R源第一(以红色突出显示)



Answer 8:

我使用vim编辑将R脚本。

假设将R脚本是test.R,含有说“1号线”,“线路2”和“3线”上3条独立的线路。

我通过键入“VIM test.R”打开test.R用Vim在命令行上。 然后我去了1号线我想注释掉,键入“control-V”,向下箭头到最后一行我想注释掉,输入大写我,即“我”的插入,输入“#”,然后按下Esc键,“#”添加到我的arrowing下选择每行。 保存在Vim的文件,然后通过键入退出Vim“:WQ”。 变化应在Rstudio显示出来。

要删除Vim的意见,开始在你要删除的“#”字符顶部的第一线,再做“控制-V”,并用箭头指向要从删除“#”的最后一行。 然后输入“DD”。 该“#”标志应被删除。

有滞后时间秒价值时Vim的变化test.R反映在Rstudio之间。



Answer 9:

在RStudio一个简单的方法来做到这一点是写你的评论,一旦你已经使用Ctrl + Shift + C注释你的代码行,然后使用CTRL + SHIFT + /回流您多行为了便于阅读评论。



Answer 10:

在Python你与之前和之后的评论3倍单引号多行注释。 我R中尝试这样做,它似乎也工作。

例如。

'''
This is a comment
This is a second comment
'''


文章来源: Multiline Comment Workarounds?
标签: r comments r-faq