本文介绍Windows下在VSCode中使用R语言的配置过程。
最后更新日期 2021/12/2

文章目录

  • 更新信息
  • 系统环境
  • VSCode插件安装
  • python(3)下安装radian
  • R 包安装
    • 附注:如果无法install.packages安装
    • 附注2(可选):把R语言的控制台改成英文
  • 插件配置
    • rpath
    • rterm
    • 启动radian相关支持
  • 启用代码格式化
    • 指定R语言专用的格式化工具
    • 保存时自动格式化
    • 使用快捷键时格式化
  • 运行R程序
    • 通过终端运行
    • 运行R代码文件
    • 附注:如果不想让VSCode提示代码美观度相关内容
  • 参考内容

更新信息

2021年12月2日
更新代码提示设置相关内容
已经验证在Windows 11 22000.348版本中可以正常运行。

2021年9月19日
7月20日,R插件更新到2.1.0版本,整合了原R LSP Client插件的功能,因此无需再安装后者(并且应用商店已经搜索不到这个插件)。

如果之前安装了R LSP Client,请卸载并重启VSCode。

系统环境

Lenovo yoga slim7 pro (yoga14s) 2021

  • CPU: Intel Core i5-1135G7 @2.4GHz 4C, 8T

  • RAM: 16GB LPDDR4X 4266MHz

软件版本:

  • OS: Windows 11 Pro 21H2 22000.348

  • R: 4.1.0

  • VSCode: 1.62.3

VSCode插件安装

在VSCode的应用商店中安装如下的插件:

  • R

    (如开头所说,原本还需安装R LSP Client,但是现在不用了)

python(3)下安装radian

radian是一个增强版的交互式R终端,支持语法高亮,错误提示等强大功能。是R插件官方推荐安装的软件之一。之后会有相关演示。

radian依赖于python,因此先检测机器是否有python环境,然后安装radian。我的机器是安装了Anaconda3之后自带的python3以及相应终端。

打开python3的终端,安装radian

pip3 install radian

安装完后执行以下命令,检测是否安装成功,同时记住显示的路径,接下来要用。

where radian

可以顺便把R语言的路径也记下来

where R

R 包安装

为了使用之后安装的R插件的代码格式化功能,需要首先在R语言中安装languageserver包。

install.packages("languageserver")

附注:如果无法install.packages安装

曾经我在R旧版本安装的时候提示这个包还有它的一些依赖似乎没法直接install.packages安装(提示package ‘languageserver’ is not available (for R version 3.6.3)),知乎上有人遇到过相同的问题。针对此情况,个人选择手动安装:

先下载languageserverstringi(前者的依赖)两个包:

https://cran.r-project.org/src/contrib/languageserver_0.3.10.tar.gz

https://cran.r-project.org/src/contrib/stringi_1.6.2.tar.gz

R语言下手动安装

先安装stringi(需要编译,耗时较久),然后安装languageserver包。最后尝试能否正确加载

library("languageserver")

附注2(可选):把R语言的控制台改成英文

这样可以避免VSCode控制台中的乱码(我个人没有做这一步也没出现中文乱码,仅供参考)

在这个文件中搜索language,将对应的行改为language = en

插件配置

rpath

Ctrl + , 打开设置tab,在搜索框里输入rpath,找到图中的Rpath: windows,改成R语言可执行文件的路径

rterm

  1. Ctrl + , 打开设置tab,在搜索框里输入rterm,找到图中的内容,改成radian的exe路径。就是第一步中 where radian显示的路径。
  2. 还是在这个搜索结果下,找到图示的设置,删除Option中的 --no-save,--no-restore,添加--no-site-file。最终效果如下

启动radian相关支持

  1. Ctrl + , 打开设置tab,在搜索框里输入bracketed,勾选R: Bracketed Paste一项。这样方便我们在终端模式下复制大段的代码。
  2. Ctrl + , 打开设置tab,在搜索框里输入sessionWatcher,勾选该选项(如果默认没有勾选上),开启绘图窗口。让我们在命令行模式下能够像R一样,在绘图时弹出新的窗口显示。

设置完毕后重启VSCode。

启用代码格式化

指定R语言专用的格式化工具

如果你还使用VSCode书写其他的编程语言,可能它的格式化工具和R语言的有冲突,此时可以给R语言单独设置格式化:

  • 新建一个R语言文档

  • 右键,选择使用...格式化文档(较早的版本可能是格式化文档的方式

  • 如果默认值是R,则无需进一步修改。

  • 如果上一步的默认格式化程序不是R,选择配置默认格式化程序,然后选择R

保存时自动格式化

Ctrl + , 打开设置tab,在搜索框里输入format,勾选其中的Format On Save。

使用快捷键时格式化

如果不希望保存时自动格式化,而是手动输入快捷键格式化,可以不勾选上图,而在快捷键(文件-首选项-键盘快捷方式)中输入format来搜索并更改按键绑定

确保两个格式化文档的快捷键一样,并且和格式化选定内容不一样。

格式化仍然是改变了代码,因此这样设置的话在格式化之后还需要手动保存。

运行R程序

通过终端运行

类似于平时在R或者R Studio里一样输入命令。

因为是通过终端运行,所以不一定非要通过VSCode,在系统自带的终端运行也有相同的效果。

打开VSCode,Ctrl + shift + 反单引号键开启新的终端,输入radian,按回车切换到radian终端

反单引号键:`


接下来就像平时在R或者R Studio里的一样,随意输入代码即可。

此时就显示出了radian的强大功能。例如输入:

plot(1:5, 1:5)

当你还没输入完plot就能自动联想:


输入完成后,函数部分会自动变色区分。

光标定位在值之前(例如第一个1:5),按tab键可以显示所有可用的参数,并根据选择自动填充到填写的值之前。

当代码输入完成后,按回车,会自动弹出一个窗口显示画图结果(没有的话去任务栏里找一下)。可以像R语言本身一样拖拽,放大缩小这个窗口。你可以把这个窗口放在一边,代码放另一边,随时查看结果。

对于View函数也是如此。

运行R代码文件

我们用的更多的还是写好一个R代码文件然后执行。此时只需打开一个后缀名为R的文件,开始写作即可。

R插件带来的各种便利功能包括且不限于:

  • 代码提示

和终端一样,也带有代码补全提示。

  • 函数文档实时查看

将鼠标移动到函数名字上,可以直接查看函数的用法说明。并且在函数体内写参数时仍然会提示函数的基本用法。这一点非常便利。

  • 代码格式化

    这样一段排版极差的代码,只要按下配置好的格式化快捷键,duang的一下就变成:

    再也不用担心代码不够美观了(笑)

  • 语法高亮
    呃,上面的例子应该能体现出来了吧。

  • 代码美观度提示

    这是经常提示的一个信息:一行代码不要超过80个字符,建议在必要的地方回车分隔。
    即使代码运行没有错误,也请看一下蓝色波浪线的提示,尽量把代码写美观。

如果需要运行一个写好的R代码文件,只需要点击编辑器右上角的右三角箭头即可。

VSCode会自动开启一个radian终端,然后执行source(这个R文件所在的绝对路径),这样就执行了这个R代码。

注意,在这种模式下,展示数据框和图片需要用View(数据或图片变量)的方式来做。如下同中的View(loadings)。执行过后,会在编辑器中展开标签页来显示相关的数据。善用VSCode的标签页管理,可以使数据观测更容易。

执行之后,仍然可以在下面的radian终端中输入代码来读取变量,做一些快速查看和计算等(因为执行文件本质上就是开了个新终端把你的代码复制进去了)。

附注:如果不想让VSCode提示代码美观度相关内容

方案A:直接关闭所有美观度提示。

Ctrl+,打开设置搜索lsp diag,把下面的R > Lsp: Diagnostics选项去掉勾选。然后重启VSCode。


方案B:单独配置。

  1. 在项目文件夹的根目录下新建一个.lintr文件。

  2. 在该文件中写入如下内容:

linters: with_defaults(  # 不提醒一行字符数错误line_length_linter = NULL, # 不提醒命名错误object_name_linter = NULL,# 不提醒多余注释错误commented_code_linter = NULL)

说明如下:

linters: with_defaults(  # 这个文件除了最后的空行之外不能有空行。以下空行仅为方便查看# 可以#号开头注释# 第2行开始每一行(含注释)一开始必须有一个tab分隔符(待考证,但是不加会报错)# 一行内字符数限制,不想有限制就写NULL,禁止其它提示同理line_length_linter = NULL, # 如果想规定一行的字符数,就写成这样# line_length_linter(999),# 不提醒命名错误(应该用下划线命名而非驼峰命名)object_name_linter = NULL,# 不提醒多余注释(把代码注释掉)错误# 最后的一个设置的最后不能有逗号commented_code_linter = NULL# 下面这个括号之后要换一下行,保证以空行结尾)
  1. 保存这个文件,然后在选项卡里关闭并重新打开需要重新检测的R文件(比如我这个2020.R)即可(不需要重启VSCode)。注意,如果.lintr的内容或格式有错误,会导致VSCode不能正确进行检测,于是会发现代码第一行的第一个字符会划红线报错,且下方“问题”一栏中会提示运行检测失败(如下图),此时请检查.lintr文件是否正确编写。

参考内容

  1. vscode 缓存路径_在vscode中配置R的开发环境——圭多达莱佐的CSDN博客

  2. 如何在 VSCODE 中高效使用 R 语言 (图文详解)——白墨石的CSDN博客

  3. VSCode 愉快地使用 R——黄盼的知乎专栏

  4. R插件的github文档

VSCode下配置R语言环境(Windows)相关推荐

  1. VScode下的Rust语言环境搭建

    VS Code对Rust有着较完备的支持,下面主要介绍VScode下的Rust语言环境搭建 下面是VSCode的下载地址: ​​​​​​​Download Visual Studio Code - M ...

  2. anaconda下配置R子环境并配置jupyter notebook的R Kernel

    anaconda下配置R子环境并配置jupyter notebook的R Kernel #在anaconda下打开主环境的terminal: conda create --name r4-base # ...

  3. VSCode快速配置C语言环境

     1.在VSCode中安装C/C++插件  2.下载mingw64 MinGW-w64官方网站首页 1.找到downloads 2.找到SourceForge 3.找到一个合适的版本(我这里是下拉找到 ...

  4. 怎么在vs code上编写C语言,VScode上配置 c语言环境的图文教程

    成成最近用到C语言了,之前比较喜欢用在vscode上面用python调试,今天我参考了一些文章,也尝试了下在vscode上配置c语言的调试,其中包含一些相关的基础知识. 1.在vscode里面下载c/ ...

  5. vscode在Windows下配置C语言环境,设置三个配置文件

    一.需要下载的安装包: 1.vscode 直接在微软官方下载最新的vscode 2.MinGw64 里面包含了gcc.gdb等前一个是编译器,后一个是debug的 传送链接: MinGW64 往下拉点 ...

  6. VSCode配置C语言环境(完整版)

    基本步骤 要在VSCode中配置C语言环境,我们首先可能要一个VSCode(废话),所以先下载安装一个VSCode: 然后肯定需要相关插件,因为VSCode不能直接拿来写C: 然后任何语言的程序在运行 ...

  7. Windows下R语言环境安装

    Windows下R语言环境安装 R官网: https://www.r-project.org/ 按照如下步骤下载windows中的安装文件R-4.1.0-win.exe 文件已经下载完成:R-4.1. ...

  8. Windows系统下R语言环境搭建及高级图表绘制

    1.R语言环境及其编译软件下载安装: 链接:https://pan.baidu.com/s/186hjytYEqJB2kDUed0beAA  提取码:mtwh 先安装R-4.0.3-win.exe,这 ...

  9. VScode配置C语言环境 亲测 可用!!!

    VScode配置C语言环境 亲测 可用!!! 一.首先下载vscode,地址:https://code.visualstudio.com/ 此时我已经安装好了 二.对VSCode进行汉化安装插件Chi ...

最新文章

  1. python语言deLong‘s test:通过统计学的角度来比较两个ROC曲线、检验两个ROC曲线的差异是否具有统计显著性
  2. Doctype作用? 严格模式与混杂模式如何区分?它们有何意义
  3. 重磅回击!ZeniMax回击Oculus新试验
  4. Python imp模块 实际使用中的坑
  5. tornado 简易教程
  6. Flutter LayoutBuilder 用来获取父布局的尺寸大小
  7. python将argv作为参数,Python当中的命令行参数sys.argv[]的使用方法
  8. python标准库——math模块
  9. 101.对称二叉树(力扣leetcode) 博主可答疑该问题
  10. Filter过滤器概念及生命周期
  11. 关于word2016保存失败
  12. 开发案例---微信定时推送:生日祝福
  13. 明解C语言入门篇_第12章_结构体
  14. 高考数学95分能学计算机吗,数学模考5分到高考95分?
  15. PHP退休了吗,年底退休和年初退休也有区别?
  16. 森林图怎么分析_森林图(forest plot)怎么看|meta分析
  17. hdcp key校验流程
  18. 21款超赞的手写英文字体,总有一款适合你
  19. 手机中的那些人机交互都是怎么实现的
  20. c语言和matlab的区别,Matlab与C语言区别.pdf

热门文章

  1. 全力支撑用友云产品 打造技术中台标杆项目
  2. DGUT_FLY退役贴 FunCfans毕业总结-竞赛篇
  3. C语言 指针,重点详解,(大佬必看, 进阶架构师)
  4. Linux 4.15亮点特性
  5. IDEA输入字母间距变大报红
  6. 计算机等级分图表,计算机二级Office:Excel模拟分析和图表知识点讲解
  7. 微信小程序video组件/腾讯视频插件,禁止拖动进度条,使用遮罩层的方式实现
  8. 23-Ajax-axios
  9. 基于改进二进制粒子群算法的配电网重构(matlab实现)
  10. RAB与RB的关系详解