2010-11-09 44 views
64

我發現這個old thread(來自一年多前),它解釋了R如何不支持多行註釋(例如PHP的/ * comment * /)。是否有可能在R中有多行註釋?

我想知道這是否在過去的一年已經解決,或者如果有其他的選擇? (例如,在記事本++與npptor,你可以標記一堆線,然後按ctrl + q將它們全部標註爲註釋,其他IDE的解決方案是否也有類似的問題?)

+0

擁有多行註釋以及嵌套註釋或某種分層註釋會很棒。這樣它會更好地摺疊。 – skan 2017-05-23 20:31:52

+0

在RStudio中,您可以使用**''''**開始您的評論,並且以下行將自動發表評論。 – 2017-11-13 20:50:09

回答

36

如果您願意,可以使用獨立字符串進行多行註釋—我一直認爲比if (FALSE) { }塊更漂亮。該字符串將被評估,然後被丟棄,所以只要它不是函數的最後一行,什麼都不會發生。

"This function takes a value x, and does things and returns things that 
take several lines to explain" 
doEverythingOften <- function(x) { 
    # Non! Comment it out! We'll just do it once for now. 
    "if (x %in% 1:9) { 
      doTenEverythings() 
    }" 
    doEverythingOnce() 
    ... 
    return(list(
     everythingDone = TRUE, 
     howOftenDone = 1 
    )) 
} 

的主要限制是,當你評論的東西了,你得看你的引號:如果你有一種裏面,你將不得不使用其他類型的評論;如果你在這個區塊裏面有「帶有'postrophes'的字符串」,那麼這個方法不是一個好主意。但是,仍然有if (FALSE)區塊。

這兩種方法都有的另一個限制是,只有在表達式在語法上有效的地方纔能使用這些塊 - 不會註釋掉列表的某些部分。

關於在哪些IDE中:我是Vim用戶,並且我發現 NERD Commenter是用於快速評論或取消註釋多行的完美優秀工具。非常用戶友好,記錄完備。

最後,在將R提示(至少在Linux下),還有可愛的Alt鍵 - - 評論當前行。如果您正在研究一行,然後意識到您需要先準備一個步驟,那麼非常高興地將一條線擱置。

+0

Hello Esteis - 關於alt-shift-#,它不適用於Windows。我使用「Esc」,我認爲它的工作方式與您所描述的類似。感謝所有的建議。 – 2010-11-09 20:19:24

+0

在Linux上,插入註釋的功能可能是由於GNU'readline'庫。如果它在R中適合你,它可能適用於其他許多應用程序,比如'bash'本身。 – 2014-09-18 15:45:30

9

R中沒有多行註釋版本2.12並且不太可能改變。在大多數環境中,您可以通過突出顯示和切換註釋評論塊。在emacs中,這是'M-x;'。

16

CTRL + SHIFT +Ç在Eclipse + StatET和Rstudio。

+0

此鍵盤快捷鍵也適用於RStudio(3.4.1,Mac)。 – hsl 2017-09-09 22:48:06

+0

@hsl謝謝,添加到我的答案。 – 2017-09-10 07:46:56

8
if(FALSE) { 
... 
} 

排除了多行被執行。但是,這些行仍然必須在語法上是正確的,即不能以正確的意義進行評論。儘管如此,仍然有助於某些情況

+0

這是我選擇的多行評論方案。 – Greg 2010-11-09 16:35:19

+0

thanks @caracal,非常有用,如果你想跳過一整塊代碼,同時非常簡單的註釋掉你是否想再次處理同一個塊#if(FALSE){'和'#}' – Gabriel123 2017-09-06 11:20:35

4

不幸的是,目前仍然沒有多線R.

如果您的文本編輯器支持列模式,然後用它來一次添加了一堆#秒的評論。如果使用UltraEdit,Alt + c將使您處於列模式。

+0

UltraEdit在編輯菜單上也有一個註釋添加命令:Alt + e,n – 2012-01-16 04:08:08

2

把下面的內容~/.Rprofile文件:

exclude <- function(blah) { 
    "excluded block" 
} 

現在,您可以排除塊像如下:

stuffiwant 

exclude({ 
    stuffidontwant 
    morestuffidontwant 
}) 
72

[R工作室(和Eclipse + StatET):突出顯示文本和使用CTRL + SHIFT + C在Windows中註釋多行。 或命令 + SHIFT + C在OS-X中。

+2

如果重複,請不要多次發送相同的答案。 – 2014-04-30 17:31:50

相關問題