VS Code 本身不包含 R 语言服务。一个精简的 R & Quarto Profile 只需要两项核心扩展,再由 R package 提供补全、诊断和图形设备。
安装扩展与 R package
code --install-extension reditorsupport.r
code --install-extension quarto.quarto
在 R 中安装语言服务和交互式图形设备:
install.packages(c("languageserver", "httpgd"))
R extension 使用 languageserver 提供补全、跳转、hover 与诊断,使用 httpgd 在 VS Code 中显示和管理图形。vscode-R
Quarto extension 提供 .qmd 高亮、YAML 补全、render/preview 命令,以及 R、Python 等代码单元的运行入口。Quarto for VS Code
统一文件关联
.Rmd 应交给 rmd 语言模式,而不是普通 Markdown:
{
"files.associations": {
"*.R": "r",
"*.r": "r",
"*.Rmd": "rmd",
"*.rmd": "rmd",
"*.qmd": "quarto"
}
}
文件关联只决定编辑器采用哪套语言能力,不决定最终由 R Markdown 还是 Quarto render。
保持 R 设置最小
{
"r.rterm.option": ["--no-save", "--no-restore"],
"r.bracketedPaste": true,
"r.plot.useHttpgd": true,
"r.source.encoding": "UTF-8",
"[r]": {
"editor.tabSize": 2,
"editor.insertSpaces": true
},
"[rmd]": {
"editor.wordWrap": "on"
}
}
--no-save 和 --no-restore 避免终端会话自动保存或恢复 .RData。bracketedPaste 让多行代码发送到支持该能力的终端时保持完整;httpgd 则需要前面安装对应 R package。
通常不需要同时设置 r.rterm.windows、r.rpath.windows、r.lsp.path 和 r.libPaths。先让扩展从 PATH 和 R 自身环境中发现程序与 package library。只有自动发现失败时,才把 r.rterm.windows 作为本机设置,并避免提交其绝对路径。
R package library 应由 R_LIBS_USER、.Renviron 或项目环境管理,不要再在 VS Code 的 r.libPaths 和终端环境变量中复制一遍。具体方法见 配置 R 启动文件与默认选项。
Session watcher 按需开启
Session watcher 可以让 VS Code 跟踪 global environment、工作区对象、帮助页面和当前工作目录。需要这些面板时设置:
{
"r.sessionWatcher": true
}
它要求 R terminal 与扩展正确连接。只需要发送代码到普通终端、或远端环境难以建立 watcher 时,可以保持关闭。出现问题先检查 R extension 的 Output,而不是同时改动 LSP、terminal 和 library path。
运行 R Markdown 与 Quarto
Quarto 文档通常使用 Quarto: Preview;只需要生成最终文件时使用 Quarto: Render。R Markdown 则使用 R extension 提供的 knit 命令。
如果默认快捷键与已有操作冲突,可以使用双段组合键:
[
{
"key": "ctrl+shift+k ctrl+shift+p",
"command": "quarto.preview",
"when": "!quartoRenderScriptActive"
},
{
"key": "ctrl+shift+k ctrl+shift+p",
"command": "quarto.previewScript",
"when": "quartoRenderScriptActive"
},
{
"key": "ctrl+shift+k ctrl+shift+k",
"command": "r.knitRmd",
"when": "editorTextFocus && editorLangId == 'rmd'"
}
]
同一按键可以根据 when 条件调用不同命令。保存后在 Keyboard Shortcuts editor 中输入该组合键,确认没有残留的单段快捷键抢先触发。
R & Quarto Profile 的扩展清单
reditorsupport.r
quarto.quarto
reditorsupport.r-syntax 等依赖扩展由主扩展管理,不必为了复现环境把每个依赖都手工列出。需要写 Quarto 中的 Python notebook 时,再从 Python & Jupyter Profile 引入相应扩展;纯 R 工作不必安装整套 Python 和 Jupyter。
验证环境
在 VS Code 的 R terminal 中运行:
R.version.string
.libPaths()
requireNamespace("languageserver", quietly = TRUE)
requireNamespace("httpgd", quietly = TRUE)
随后打开一个 .R 文件测试补全和诊断,再打开一个最小 .qmd 执行 Preview。这样可以区分 R terminal、语言服务和 Quarto render 三条链路,避免某一步失败时重装全部扩展。