RStudioの折りたたみ機能

今更ながらコードの折りたたみ機能が付いている事に気付いた。
詳細はCode Folding and Sections – RStudio Supportを参照。

折りたたみ設定されるもの

  • ブレース(波括弧{})で括られた領域。
  • R SweaveやR Markdownドキュメントにおけるコードチャンク。
  • R Mardcownドキュメント中におけるセクション。
  • コードセクション(後述)

上記4つは自動的に折りたたみ設定がされる。
例えば、関数や条件定義領域などのブレースで囲まれた部分があると、行数の横に三角が現れる。
f:id:Rion778:20150531170144p:plain
これをクリックすることで折りたたみができる。
f:id:Rion778:20150531170225p:plain
展開する場合は再び三角をクリックするか、折りたたまれている事を示している青いアイコンをクリックする。
(キーボードショートカットで操作する方法は用意されていないか、うまく動かないようだ。Ctrl + Command + L(Mac)で閉じられるときもあるし、閉じられないときもある。このコマンドは任意領域の折りたたみの際には上手く動作する。)

任意の折りたたみ領域を設定する

折りたたみ設定がされていない領域も折りたたむことができる。
範囲選択後にEdit > Folding > CollapseまたはCtrl + Command + L(mac)で任意領域の折りたたみができる。
f:id:Rion778:20150531171014p:plain
f:id:Rion778:20150531171158p:plain

コードセクション

Rスクリプト中に、コメント記号(#)で開始し、4つ以上の-または=または#で終了する行があると、セクションの開始とみなされる。
f:id:Rion778:20150531171605p:plain
どのセクション記号も機能は同様であり、セクション開始から次のセクション開始までが折りたたみの対象となる(=サブセクションを作ることはできない)。
セクションは折りたたみの対象となるだけでなく、関数定義と同様にジャンプ機能の対象となり、その部分へ容易に移動できるようになる。
f:id:Rion778:20150531171944p:plain

キーボードショートカット

Macの場合のショートカットが若干押しにくいが…

機能 Windows Mac
折りたたみ Alt + L Ctrl + Command + L
展開 Alt + Shift + L Ctrl + Command + Shift + L
全て折りたたみ Alt + O Ctrl + Command + O
全て展開 Alt + Shift + O Ctrl + Command + Shift + O

Edit > Foldingから選択することも出来る。
折りたたみ・展開は基本的には領域選択と合わせて使う。領域を選択していない場合は動くこともあるし動かないこともあってよく分からない。
「全て折りたたみ」を実行した場合、最も「外側」で折りたたまれる。もしセクションが設定されていればセクションが最も外側となる。
なお、折りたたみの状態はファイルを閉じない限り保存される(たとえRStudioを終了しても)が、ファイルを閉じて再度開いた際には全ての折りたたみが展開された状態となる。