Visual Studio CodeでRの快適な実行環境

以下は情報系を勉強する女子大生 Advent Calendar 5日目の記事です。

今回初めてAdvent Calendarに参加させていただきます、iwasaki501です。私は研究で使うプログラムの他に日常的な作業の自動化スクリプトを書いたり友人の誕生日にソースコードをプレゼントしたりして細々とコーディングを続けていますが、本職は生物系を専攻する学生です。以下の内容は私が女子大生であることとは全く関係ありませんが、このAdvent Calendarが埋まっていないのを見つけてやや寂しかったので駆け込みで投稿させていただきます(すみません)。

この記事はこんな人におすすめ

最終的にこんな風になります

  • ショートカット一発で、テキストエディタからRのコンソールにコードを流し込んで実行させることができます
  • plotは別窓で表示されるので、Rstudioのようにpane内で縦横比がおかしくなって苛々することがありません f:id:I-was-a-Ki:20171205222129p:plain

Visual Studio Codeの導入に至った経緯

  • WindowsのRにデフォルトで付属しているエディタはCtrl+Rでコードを流し込めるが、さすがにシンタックスハイライトも入力補完もないのは無理(というかエディタと呼んではいけないレベル)
  • Rstudioも同様の利点を持つが、environment領域が不要なのとpane内でプロットされるのが気持ち悪い
  • Sublime Textに移行したものの、日本語対応が微妙な上当然ながらコードのコピペが億劫
  • Vimでの実装例を見つけた(こちらとか)が、Sublime Textで重宝していたHot Exit(未保存の変更を保ったまま終了し、次回起動時に再現してくれる)の実現が困難そうなのでしんどい

IDEであるVisual Studioが恐ろしく嫌い(使用時に動悸と頭痛及び吐き気を伴う)なので当然その付属エディタたるVSCodeにも全く良い印象がなかったが、どうやらここ最近でMSアレルギーの私が使っても快適にコーディングできるエディタに大進化を遂げていたようだ(自動保存・Hot Exitへの対応、動作の軽快さなど)。そのうち特にRのプラグインが非常に秀逸だったものの全く日本語記事がヒットしなかったので、以下に導入手順を記しておく。ご参考まで。

導入手順

※以下、Windows10での場合を説明する(VSCodeはElectron製なので他のプラットフォームでも問題なく動くと思われるが、未確認)

Visual Studio Codeのインストール

公式ページからVSCodeをダウンロード・インストール。

初回起動時にしておくべき作業

※先述の通り、Hot Exitを有効にしておけば終了時のセッションが回復されるので下記の作業を起動の度に繰り返す必要はない。

デフォルトではアクティビティーバーやサイドバーが表示されていて賑やかだがいずれも右クリックで非表示にできるのでご安心あれ(起動時の「ようこそ」ページも開かないように設定できる)。

Rのプラグインをインストールする

Ctrl+Shift+Xで拡張機能サイドバーを表示、プラグイン「R」を検索してインストール後、エディタを再起動する。

Rへのパスを指定する

Ctrl+Commaで設定を開き、右側のpaneにRへのパスを追記する。私の環境では以下のようになった。

"r.rterm.windows": "C:\\Program Files\\R\\R-3.4.2\\bin\\R.exe"

Rのワーキングディレクトリを開く

VSCode上でRを動かすには、ワーキングディレクトリとなる何らかのフォルダを開いておく必要がある。「ファイル」→「フォルダを開く」でいつものR起動時のワーキングディレクトリを指定しておくとスムーズであろう。初回はファイルツリーなどが表示されるがこれも非表示にできる。

Rのコードを実行してみる

Rを起動させる

既存のRコードを開くか、またはCtrl+Nで新規書類を作成し言語をRに設定する(画面右下の「プレーンテキスト」をクリックする、あるいはCtrl+Kを押してからMを押下することによって言語選択画面が表示されるのでRを選択)。ここでCtrl+Enterを押すと右側にRコンソールが現れる。

※lintrをインストールしろという警告が出るかもしれないが、その場合は言われるがままインストール+VSCodeの再起動をすればよい。

Rのコードを実行する

実行させたい部分を選択した上でCtrl+Enterを押すと、コードが右側のRコンソールに流し込まれて実行される。何も選択していない場合、カーソルがある行のコードがRで実行される。

使い勝手向上のために(以下オプション)

問答無用でワークスペースを保存せずに終了する

※v0.5.2よりデフォルトの起動オプションが["--no-save", "--vanilla"]になったのでこの項目の作業は不要になりました。

q()を実行した際にワークスペースを保存するかどうか訊かれるのが面倒なので、保存しないオプションをつけてみる。先程と同様設定を開き、以下を追記する。

"r.rterm.option": [
    "--no-save"
]

キーバインドを変更する

個人的にRの実行は「Ctrl+R」で行うのに慣れているので設定を変更してみる。Ctrl+Kを押したのちCtrl+Sを押すとキーボードショートカットの設定画面が開くので、r.runselectionを検索して編集すればお好みのキーバインドに変更できる。

おわりに

今回の記事の内容とは関係ないが、VSCodeでは右側にRコンソールだけでなくターミナルを表示させてエディタと連動させることもできる。また、Markdownのリアルタイムプレビュー及びhtmlへの自動保存(こちらを参照)なども可能である。ぜひお試しあれ。