VSCode中配置R语言运行环境

在使用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.linuxr.rterm.macr.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-saveno-restore两个选项即可。在VSCode 的设置中,找到r设置下的r.rterm.option,将后面不需要的两项注释掉或删掉即可。当然,你也可以在这里使用自定义的选项。

另外的一个问题是,你可能发现更换掉R Console路径后,LSP 带来的效果不见了。这是因为Lanuage Server指向的路径默认随着R Console 变动,而它无法识别radian。我们通过将选项r.rpath.lsp更改为R.exe的默认路径即可修复该问题。

到此为止,radian的配置工作结束。

参考

赞赏一杯咖啡
0%