在使用R语言的大部分用户中,RStudio都是首选的IDE。凭借其完善的功能和特性,RStudio似乎成了R语言理所当然的选择。不过一些时候,我们可能并不需要特别多的复杂功能,因此,我尝试在VSCode这个轻量级的通用代码编辑器中配置R语言运行环境。
安装R
首先我们需要安装R 核心程序。
插件安装
如果你曾经在VSCode中使用过Python插件,实际上只需要微软出品的这一个插件就差不多可以开始工作了。但作为小众语言,R的插件并不是官方开发,而是由第三方开发者贡献的。这也导致配置一个尚可的R环境需要从四处安装不同的东西,才能开始工作。
R
首先,在Visual Studio Code的应用商店中搜索扩展R,然后我们可以按照扩展说明进行配置:
- For Windows, set config r.rterm.windows to your R.exe Path like “C:\Program Files\R\R-3.3.4\bin\x64\R.exe”;
- For Radian console, enable config r.bracketedPaste
- Open your folder that has R source file (Can’t work if you open only file)
- Use F1 key and R: command or Ctrl+Enter(Mac: ⌘+Enter)
首先配置R语言的可执行文件位置,也就是R.exe
的位置

配置好之后需要重新加载。新建窗口,打开自己编写的 r 文件。
- 选中执行是
ctrl + Enter
- 执行文件是
ctrl + Shift + s
或者 点击右上角的小图标
R LSP Client
如果只安装上面这个R插件,很多代码不能自动补全,尤其是来自第三方包的命令。这对强烈依赖第三方包的R简直是致命的。这时就需要安装另外的一个插件:R LSP Client。
LSP 是Language Server Protocol 的缩写。简单来说,LSP 为不同语言在不同编辑器或IDE 中的自动补全、查找定义、悬停查看函数文档等功能搭建了桥梁,使得开发者可以减少针对不同语言和不同编辑器的重复开发。对用户来说,使用这一功能意味着可以获得更好的自动补全、查看帮助文档等特性。
注意:安装了这个插件后,你会发现自动补全依然没有出现。实际上,插件只是在编辑器一侧提供了实现LSP的条件,而在R语言一侧还需要另外的包languageserver来完成搭接。
在R环境中运行如下安装指令:
1 | install.packages("languageserver") |
然后重启一下VSCode,整个LSP的功能就可以实现了。
radian
使用R语言很多时候是把编辑器中的代码发送到Console中运行,一些时候也需要直接在Console中运行一些代码进行快速交互。RStudio为Console提供了语法高亮、自动补全等功能的加持,使得在Console中也可以有比较方便的输入输出体验。然而R for VSCode插件默认在Terminal中调用R进程,只会返回朴素的R Console界面,高亮、补全通通不在考虑范围之内。
radian为这件事提供了新的可能。它给“性冷淡”的R Console 穿上一身华丽的新衣,也增加了自动补全、多行输入等等特殊能力。我们可以把它加入到VSCode中,或是直接在终端中使用它运行R代码。
radian本身是一个Python项目,所以你需要安装有一个Python环境,然后使用pip安装这个包,直接在终端中输入:
1 | pip install -U radian |
安装完成后,就可以在终端中直接使用命令:
1 | radian |
由于radian并不是VSCode插件,它可以独立在终端中运行,但带来的问题就是无法在VSCode中默认调用它。好在R for VSCode插件提供了更换R Console 路径的设置。
打开VSCode的设置项,找到r的设置。这里有三项相似的设置分别为r.rterm.linux
、r.rterm.mac
、r.rterm.windows
,根据你的系统,找到需要更改的其中一个设置项。但在更改之前,需要知道radian在哪里。比较快捷的方式是在终端中运行:
1 | where radian |
然后我们将返回的路径粘贴在相应设置的值中。
但重启VSCode并运行一个R命令会发现VSCode返回一个类似的错误:
1 | 终端进程命令“/Users/caoyue/anaconda3/bin/rtichoke --no-save --no-restore --no-site-file”无法启动 (退出代码: 2) |
因为R for VSCode插件在开启一个R 进程时,默认带入了三个选项--no-save
、--no-restore
、--no-site-file
。然而根据radian作者的说法,radian的--no-save
和--no-restore
已经作为默认选项故而无法再传入。因此,在设置中关闭--no-save
和no-restore
两个选项即可。在VSCode 的设置中,找到r设置下的r.rterm.option
,将后面不需要的两项注释掉或删掉即可。当然,你也可以在这里使用自定义的选项。
另外的一个问题是,你可能发现更换掉R Console路径后,LSP 带来的效果不见了。这是因为Lanuage Server指向的路径默认随着R Console 变动,而它无法识别radian。我们通过将选项r.rpath.lsp
更改为R.exe
的默认路径即可修复该问题。
到此为止,radian的配置工作结束。