# 3.3 安装Visual Studio Code

Microsoft Visual Studio Code 是一个可扩展的代码编辑器，其带有在线插件市场。

它是使用 CPython 的绝佳选择，因为它通过集成的 Git 界面来支持 C 和 Python。

## 安装

Visual Studio Code（有时称为 VS Code）的简单安装程序可在 code.visualstudio.com 上获得。

开箱即用的 VS Code 具有必要的代码编辑功能，但一旦安装了扩展，它就会变得更加强大。

你可以通过从顶部菜单中选择 `View/Extensions` 来访问 Extensions 面板：

截图不译。

在 Extensions 面板中，你可以按名称或按其唯一标识符（例如`ms-vscode.cpptools`）搜索扩展。在某些情况下，有许多名称相似的插件，因此请使用唯一标识符以确保安装的是正确的插件。

## 本书的推荐扩展

有几个对 CPython 有用的扩展：

* **C/C++（ms-vscode.cpptools）** 提供对 C/C++ 的支持，包括 IntelliSense、调试和代码高亮显示。
* **Python (ms-python.python)** 为编辑、调试和阅读 Python 代码提供了丰富的 Python 支持。
* **reStructuredText（lextudio.restructuredtext）** 为 reStructuredText 提供了丰富的支持，reStructuredText 是 CPython 文档中使用的格式。
* **Task Explorer（spmeesseman.vscode-taskexplorer）** 在 Explorer 选项卡中添加了一个 Task Explorer 面板，使启动 `make` 任务变得更加容易。

安装这些扩展后，你需要重新加载编辑器。

本书中的许多任务都需要命令行。你可以通过选择 `Terminal/New Terminal` 将集成终端添加到 VS Code 中。终端将出现在代码编辑器下方：

截图不译。

## 使用高级代码导航和扩展

安装插件后，你可以执行一些高级代码导航。

例如，如果右键单击 C 文件中的函数调用并选择 `Go to References`，VS Code 将在代码库中找到对该函数的其他引用：

截图不译。

`Go to References` 对于发现函数的正确调用形式非常有用。

如果单击或将鼠标悬停在 C 宏上，则编辑器会将该宏扩展为已编译代码：

截图不译。

要跳转到函数的定义，请将鼠标悬停在对它的任何调用上，然后在 macOS 上按 `Cmd` + `Click` 或在 Linux 和 Windows 上按 `Ctrl` + `Click`。

## 配置任务和启动文件

VS Code 使用工作区目录中的 `.vscode` 文件夹。如果此文件夹不存在，请立即创建。你可以在此文件夹中创建以下文件：

* **tasks.json** 用于执行项目的命令的快捷方式；
* **launch.json** 配置调试器（参见“调试”一章）；
* 其他插件特定的文件。

如果尚不存在 `tasks.json` 文件，请在 `.vscode` 目录中创建一个 。这个 `tasks.json` 文件将帮助你开始：

`cpython-book-samples/11/tasks.json`

```json
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "windows": {
                "command": "PCBuild/build.bat",
                "args": ["-p", "x64", "-c", "Debug"]
            },
            "linux": {
                "command": "make -j2 -s"
            },
            "osx": {
                "command": "make -j2 -s"
            }
        }
    ]
}
```

使用 Task Explorer 插件，你将在 `vscode` 组中看到已配置任务的列表：

截图不译。

在下一章中，你将了解更多关于编译 CPython 的构建过程。
