VS Code
概述
Quarto 可以渲染表示为纯文本(.qmd
)或普通笔记本文件(.ipynb
)的 Jupyter 笔记本。Quarto VS Code 扩展包含许多增强这些文档工作的工具,包括:
- Quarto 文档的集成渲染和预览。
- Markdown 和嵌入语言的语法高亮。
- YAML 选项的补全和诊断。
- 嵌入语言(如 Python、R、Julia 等)的补全。
- 运行单元格和选中行的命令和快捷键。
- LaTeX 数学公式以及 Mermaid 和 Graphviz 图表的实时预览。
Quarto 扩展直接与 Jupyter、R 和 Julia 扩展集成。例如,这里 Quarto 扩展运行一个 Python 单元格并显示 Python 函数的上下文帮助:
你可以从 VS Code 扩展市场 或 Open VSX 注册表 安装 Quarto 扩展。
VS Code 编辑器
根据你的偏好和当前任务,你可以使用 VS Code 中的三种不同编辑器来编写 Quarto 渲染的文档:
渲染和预览
Quarto VS Code 扩展包含渲染 Quarto 文档(无论是独立的还是在网站或书籍中)的命令和键盘快捷键。渲染后,quarto preview
在幕后使用,以在 VS Code 中提供一个预览窗格,与你的文档并排显示:
要渲染和预览,执行 Quarto: 预览 命令。你也可以使用 Ctrl+Shift+K 键盘快捷键,或者编辑器右上角的 预览 按钮():
注意,在 Mac 上,你应该使用 Cmd
而不是 Ctrl
作为所有 Quarto 键盘快捷键的前缀。
其他格式
Quarto: 预览 命令渲染当前活动文档的默认格式。如果你想预览其他格式,使用 Quarto: 预览格式 命令:
当你执行 预览格式 时,你会看到一个格式选择列表(文档中声明的任何格式以及一些标准格式,如 PDF 和 MS Word):
预览不同格式后,Quarto: 预览 命令和 Ctrl+Shift+K 键盘快捷键将自动重新绑定到新选择的格式,直到当前预览结束。要切换回预览原始格式,请再次使用 Quarto: 预览格式 命令。
嵌入式预览目前支持基于 HTML 和 PDF 的格式(包括 revealjs
和 beamer
幻灯片)。然而,对于 Word 和其他格式,你需要使用适当的外部程序来预览输出。
渲染命令
Quarto: 预览命令是你在撰写文档时最常用的命令。如果你只有一种格式(例如HTML或PDF),那么预览也会渲染你的文档,这样一旦你对输出满意,它就可以立即分发。然而,如果你有多种格式,你需要明确地渲染它们(因为预览一次只能渲染一种格式)。你可以使用Quarto: 渲染文档命令来完成这个操作:
如果你声明了多种格式,你可以渲染所有格式。你也可以选择性地渲染任何声明的格式或其他标准格式,如PDF和MS Word。
保存时渲染
默认情况下,Quarto不会在你保存.qmd
或.ipynb
文件时自动渲染它们。这是因为渲染可能非常耗时(例如,它可能包括长时间运行的计算),并且最好能够在不进行完整渲染的情况下定期保存。
然而,你可以配置Quarto扩展,使其在你每次保存时自动渲染。你可以在VS Code设置中或在你的项目或文档的YAML选项中进行此配置。要配置VS Code设置,请在设置中搜索quarto.render
,你会找到保存时渲染选项:
你可能还希望在每个文档或每个项目的基础上控制此行为。如果你在文档或项目的YAML中包含editor: render-on-save
选项,它将覆盖你的VS Code设置。例如:
editor:
render-on-save: true
外部预览
如果你更喜欢使用外部浏览器进行预览(或者渲染时根本不触发预览),你可以使用预览类型选项来指定替代行为:
代码单元格
有多种工具可以使编辑和执行代码单元格变得更加容易。编辑工具包括语法高亮、代码折叠、代码补全和签名提示:
对于Python、R和Julia单元格,可以使用命令来执行当前单元格、之前的单元格或当前选中的行。单元格输出会在Jupyter交互式控制台中并排显示:
以下是所有可用于执行单元格的命令和键盘快捷键:
Quarto 命令 | 键盘快捷键 |
---|---|
运行当前单元格 | ⇧⌘ Enter |
运行选中的行 | ⌘ Enter |
运行下一个单元格 | ⌥⌘ N |
运行上一个单元格 | ⌥⌘ P |
运行所有单元格 | ⌥⌘ R |
运行上方所有单元格 | ⇧⌥⌘ P |
运行下方所有单元格 | ⇧⌥⌘ N |
你可以使用Ctrl+Shift+I键盘快捷键快速插入一个新的代码单元格。
通过安装这些扩展的最新版本,可以启用嵌入语言的增强功能(例如补全、代码执行):
执行目录
嵌入语言扩展以不同的方式处理执行的工作目录:
Python扩展在执行代码的源文件的目录中运行代码。你可以使用
jupyter.notebookFileRoot
选项自定义此行为。R扩展在R交互式终端中运行的R会话的工作目录中运行代码。你可以使用
setwd()
手动更改此目录。Julia扩展在Julia REPL终端中运行的Julia会话的工作目录中运行代码。你可以使用
cd()
手动更改此目录。 ## 上下文帮助
执行 Quarto: 显示帮助面板 命令,在侧边栏显示一个面板,根据当前光标位置显示上下文帮助:
- 编辑代码时显示帮助/文档
- 编辑 LaTeX 数学公式时显示实时预览
- 光标位于 Markdown 图片上时显示缩略图预览
例如,当光标位于 matplotlib 的 plot()
函数上时,会自动显示该函数的帮助信息:
实时预览
在编辑 LaTeX 数学公式或 Mermaid 和 Graphviz 图表时,点击代码上方的 预览 按钮(或使用 Ctrl+Shift+L 快捷键)打开一个实时预览,该预览会随着你的编辑自动更新。
这里我们看到当前编辑的 LaTeX 方程在 Quarto 帮助面板中显示的预览:
这里我们看到 Graphviz 图表预览在我们编辑时自动更新:
YAML 智能提示
项目文件、YAML 前言和可执行单元选项的 YAML 代码补全功能可用:
如果 YAML 有错误,文档保存时也会被高亮显示:
代码片段
代码片段是模板,便于输入重复的代码模式(例如代码块、标注、div 等)。在 Quarto 文档中执行 插入片段 命令以插入 Markdown 片段:
IntelliSense
VSCode 使用 IntelliSense 在输入时建议代码片段或特定函数的可用值。默认情况下,代码片段的建议是关闭的,但值的建议是开启的。要在输入时或在选择文本片段并按下 ctrl+space
时启用代码片段的 IntelliSense 建议,需要将设置 editor.snippetSuggestions
设置为非 none
的值(例如 inline
)。
- 按
F1
并搜索Preferences: Open Settings (UI)
或File
>Preferences
>Settings
- 搜索以下术语
@lang:quarto editor.snippetSuggestions
。Editor: Snippet Suggestions
应该会出现。 - 将值更改为非
none
的值。
文档导航
如果你有一个大型文档,使用大纲视图可以快速在各部分之间导航:
你也可以使用 在编辑器中转到符号 命令或快捷键 Ctrl+Shift+O 进行当前文档大纲的类型前导航。
使用 转到文件 命令 Ctrl+P 导航到其他文件,使用 在工作区中转到符号 命令 Ctrl+T 进行工作区中所有标题的类型前导航:
了解更多
除了上述传统的源代码编辑器外,你还可以根据个人偏好和当前任务使用以下其他编辑器之一:
可视化编辑器 用于 WYSIWYG 编辑
.qmd
文档。Notebook 编辑器 用于编辑
.ipynb
笔记本。