用 VSCode 愉快地写 R 和 Python

前言

  博主这几天要用 R 语言分析毕设数据和画图,所以首先要对我最喜欢的编辑器之一 —— VSCode 进行一番配置(顺道把 Python 也配置了)。

为什么选 VSCode

  VSCode 全称 Visual Studio Code,是微软出的一款轻量级代码编辑器,免费、开源而且功能强大。它支持几乎所有主流的程序语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。软件跨平台支持 Win、Mac 以及 Linux。
  如果你是一个 R 语言用户,RStudio 一定是首选 IDE,如果你是一个 Python 用户,Pycharm 则是大多数人的编辑器。但如果你平时既要用点 R,也要用点 Python,并且感觉这些 IDE 有点臃肿或者不想在两个 IDE 中反复切换,那么 VSCode 就是一个不错的选择。当然,VSCode 能做的可不只是写 R 和 Python,你可以用它来写世界上几乎所有的计算机语言。但它并不是一个庞然大物,你可以选择相应的插件使 VSCode 支持相应的语言。

安装 R 和 Python

  对于 Windows 用户,R 可以在官网下载,Linux 用户直接在终端下载即可(也可以去官网下载),Python 建议安装 Anaconda 的 Python3 版本。因为这是一篇介绍如何在 VSCode 中愉快使用 R 和 Python** 的文章,所以不打算深入介绍如何安装这一块。

语言服务

  VSCode 对语言的支持方式是提供统一的开发 API,即 Language Server Protocol。各种语言可以能够通过这个 API 在 VSCode 上得到类似 IDE 的体验,这种服务在 VSCode 中称为语言服务。语言服务会根据我们的项目、当前文件和光标所在位置为我们提供一个建议列表,包括在当前光标位置下我们可能会输入的各种代码函数。随着字符的输入 VSCode 会根据字符输入内容自动对列表进行过滤。

配置 R 插件

  目前 JavaScript、Python、PHP 等几大主流语言在 VS Code 中都已经有很完善的支持,但是 R 核心插件还是第三方贡献的,想要配置的顺手还需要一些操作。实现 R 语言服务必需要有如下前两个插件(插件管理可以在左侧侧边栏找到,然后在搜索框里搜索 R 即可)。

R support for Visual Studio Code

  这个插件是 VS Code 中 R 的核心插件,具有语法高亮,基础代码片段和代码执行等功能。例如你可以在编辑器中选择某几行内容,然后使用 CTRL+ENTER 将代码发送到终端执行。

R LSP Client

  这个插件在主页的介绍是:

R language support for VS Code, powered by the R language server.

  也就是我们上文提到的 Language Server Protocol,有了这个它就可以进行代码补全、查看函数定义以及参数预览了。不过想让它生效还需要下面几个小步骤:

在 R 中安装 languageserver 包

  使用下面的命令:

install.packages("languageserver")

  只有安装了这个包才能实现 R 和 编辑器的同步。

在 VSCode 中设置正确的 R 路径

  打开设置界面,在搜索框中输入 r.rterm,找到你电脑操作系统所对应的设置 (比如博主现在用的是 Linux 系统的,则选择 Rterm: Linux,如果是 Windows 系统,则选择 Rterm: Windows),然后在编辑栏中输入你的 R 可执行文件位置(如果是默认安装的 R 3.5.1 版本,位置应该是 C:\Program Files\R\R-3.5.1\bin\x64\R.exe)。

在 VS Code 中设置正确的 R LSP 路径

  和上面的方法相同,只不过这次搜索 r.lsp,目录和你的 Rterm.Windows 或者 Rterm.Linux 一致即可。

重启 VSCode

  完成上面几项设置,接下来使用 CTRL+SHIFT+R 调出命令面板,然后输入 reload,选择 Reload Window 执行 ,重启 VSCode 即可。

rtichoke

  到目前为止,如果直接在 VSCode 中执行 R 代码,它默认调用的是我们之前设置过的官方 R 终端,这个终端非常古老而且不友好,没有参数提示、补全和代码高亮等功能。不过好在我们的「21 世纪 R console rtichoke」即将登场。
  安装配置方法如下:

  1. 在上文中你应该已经成功使用 Anaconda 在你的电脑里装好了 Python,现在打开 Anaconda Prompt,也就是 Anaconda 自带的命令行工具;
  2. 输入 pip install -U rtichoke 安装 rtichoke;
  3. 安装完成后输入 rtichoke 测试是否调用成功;
  4. 找到并进入你电脑里的 anaconda scripts 目录,正常情况下是 C:\Users\YouName\Anaconda3\Scripts\
  5. 不出意外里面应该有一个叫做 rtichoke.exe 的文件,找到它并复制它的路径;
  6. 在 VSCode 中重新设置 Rterm.Windowsrtichoke.exe 路径;
  7. 找到 Rterm.Option 选项,点击 settings.json,并在 settings.json 文件中用 \\ 注销掉这个选项下的 --no-saveno-restore 参数;
  8. 重启 VSCode 后大功告成。

自定义 R 必备快捷键

  如果你是一个忠实的 R 语言用户(反正博主不是),那么一定不会用 = 代替 <-,但是 <- 需要按两下键盘而且这两个键位置还挺远,更难过的是因为你用了语法提示如果你在 <- 两端没有加上空格它还会给你出现大破浪下划线恶心你。在 RStudio 中你可以使用 ALT+- 一气呵成输入这四个符号 <-,在 VSCode 中必须也可以。
  打开 Keyboard Shortcuts (快捷键是 CTRL+K CTRL+S),在搜索框中搜索 ALT+-。这个时候你会看到这个快捷键已经被绑定了(别慌),点开 keybindings.json 文件(点击下图右上角的花括号),我们去给这个快捷键设置不同情境下新的含义。

  将下面的代码复制粘贴到你的 keybindings.json 文件内:

{
        "key": "alt+-",
        "command": "type",
        "args": {
            "text": " <- "
        },
        "when": "editorTextFocus&&editorLangId == 'r'"
},

配置 Python 插件

安装 Python

推荐安装 Anaconda

  我这里推荐大家安装 Anaconda。Anaconda 是 Python 的一个发行版,用于进行大规模数据处理、预测分析,和科学计算,致力于简化包的管理和部署。Anaconda 使用软件包管理系统 Conda 进行包管理。Anaconda 官网上对 Anaconda 的描述是最受欢迎的 Python 数据科学平台。
  对于初学者来说,刚开始需要安装很多东西,如果你不想这么麻烦,那么 Anaconda 一定是你的首选,它自带了一堆 Python 常用库,而它的包管理系统对初学者又非常的友好,可以轻松实现 Python中 的各种包。

如何安装 Anaconda

  先去官网下载,选择你的操作系统所对应的版本,并选择你的 Python 版本(博主用得的是 Python3)。
  下载完成后,点击安装即可。这里有几点要强调一下:

  1. 配置环境变量。一定要勾选 Add Anaconda to my PATH environment variable,将 Anaconda 添加到环境变量,这样 VSCode 的插件才能找到 Python 环境(如果忘勾选了,也可以安装完后自己手动添加到环境变量里)。
  2. 将 Anaconda 设为默认的 Python 环境。勾选 Register Anaconda as my default Python 3.7
  3. 安装完成后会提示我们是否安装 VSCode , 我这里选择跳过,VSCode 待会我们自己装。

  至此 Anaconda 已经安装完成。装完后运行 CMD,输入 conda --version 命令看看是否装好了:

$ conda --version
conda 4.5.11

  如果出现版本号如 4.5.11,那么说明安装成功(只要出现数字即可,不需要和博主的一样)。再运行 conda activate 就进入 Anaconda 环境。

安装 Python 插件

  在 VSCode 中搜索扩展 Python,如下图:

  安装完成后需要重新加载 VSCode 使插件生效。

配置 Python 环境

  在 VSCode 中点击状态栏左下角的 Python 图标:

  然后选择 Python 解释器(博主电脑上装有三中解释器),这里博主选择我们刚才安装好的 Anaconda(第三个):

错误提示和格式化

  Python 默认的语法提示工具是 PyLint,也可以选择其他的 linter 工具,比如 flake8。flake8 是 Python 官方发布的一款静态代码检查工具,如果想使用它的话首先在 Anaconda 的命令行工具中用 pip install flake8 安装;另外,在保存代码的时候 VSCode 可以自动进行 code formatting ,这个功能默认是关闭的且工具是 autopep8 , 如果想使用 yafp,则继续在命令行工具中用命令 pip install yapf 安装。
  安装好这两个工具之后在 VSCode 的配置文件中进行设置:

"python.linting.enabled": true
"python.linting.flake8Enabled": true,
"python.formatting.provider": "yapf"

Anaconda Extension Pack 插件

  这是一款 Anaconda 的扩展包,可增强使用 VSCode 的 Anaconda 的体验(强烈建议安装)。

测试

  测试我们配置是否正确:

  1. 新建一个文件夹 test,在 test 里新建一个 test.py 文件;
  2. 用 VSCode 打开 test 文件夹;
  3. 打开 test.py 写入如下代码
    print('Hello, world!') //python3版本
  4. 运行方法:
    1. 全选代码,然后 SHIFT+ENTER
    2. CTRL+~ 调出终端,输入 python test.py 回车运行文件.

其他配置

  VSCode 中的插件真的很赞,博主曾经花了很长一段时间挑选这些插件,写了一篇最强编辑器 VSCode 系列之插件推荐的文章,现在分享给你们。
  博主不太喜欢默认的 VSCode 界面,所以修改了它的主题和图标(上面的插件推荐文章里有写),还修改了它的字体,换成了 Fira Code —— 专为编程而生的字体
  VSCode 自带 Git 这个开源的分布式版本控制系统,如果你还不知道 Git,点击本站 Git 学习笔记进行学习。

总结

  对于博主这样偶尔写代码的人来说,VSCode 真的太适合我了。


   转载规则


《用 VSCode 愉快地写 R 和 Python》 Huang Pan 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录