Skip to content

Vscode

简介

Visual Studio Code(以下简称 VS Code) 是一个由微软开发,同时支持 Windows、Linux 和 macOS 等操作系统且开放源代码的代码编辑器。它是用 TypeScript 编写的,并且采用 Electron 架构。它带有对 JavaScript、TypeScript 和 Node.js 的内置支持,并为其他语言(如 C、C++、Java、Python、PHP、Go)提供了丰富的扩展生态系统。

官网:Visual Studio Code - Code Editing. Redefined

使用 Code Runner 插件运行代码

VS Code 安装并配置插件后可实现对 C/C++ 的支持,但配置过程比较复杂。一个简单的编译与运行 C++ 程序的方案是安装 Code Runner 插件。

Code Runner 是一个可以一键运行代码的插件,在工程上一般用来验证代码片段,支持 Node.js、Python、C、C++、Java、PHP、Perl、Ruby、Go 等 40 多种语言。

安装的方式是在插件商店搜索 Code Runner 并点击 Install;或者前往 Marketplace 并点击 Install,浏览器会自动打开 VS Code 并进行安装。

安装完成后,打开需要运行的文件,点击右上角的小三角图标即可运行代码;按下快捷键Ctrl+Alt+N(在 macOS 下是Control+Option+N)也可以得到同样的效果。

???+ warning 如果安装了 VS Code 与 Code Runner 后,代码仍然无法运行,很有可能是因为系统尚未安装 C/C++ 的运行环境,参考 Hello, World! 页面 以安装。

记得勾选设置中的 Run In Terminal 选项,如图:![](./images/vscode-7.png)

使用 C/C++ 插件编译并调试

安装插件

在 VS Code 中打开插件商店,在搜索栏中输入 C++ 或者 @category:"programming languages",然后找到 C/C++,点击 Install 安装插件。

???+ warning 在配置前,请确保系统已经安装了 G++ 或 Clang,并已添加到了 PATH 中。请使用 CMD 或者 PowerShell,而不是 Git Bash 作为集成终端。

配置编译

首先用 VS Code 打开一个文件夹,然后按下F1,输入 C/C++: Edit configurations (UI),进入 C/C++ 插件的设置界面。

vscode-3

在“编译器路径”中选择 G++ 或 Clang 的所在路径。如果没有可选项,请检查编译器所在路径是否添加到了操作系统的 PATH 变量中。

配置 IntelliSense

用于调整 VS Code 的智能补全。

如果你使用 Clang 编译器,在“IntelliSense 模式”中选择 clang-x64 而非默认的 msvc-x64;如果你使用 G++ 编译器,选择 gcc-x64 以使用自动补全等功能。否则会得到“IntelliSense 模式 msvc-x64 与编译器路径不兼容。”的错误。

配置 GDB/LLDB 调试器

在 VS Code 中新建一份 C++ 代码文件,按照 C++ 语法写入一些内容(如 int main(){}),保存并按下F5,进入调试模式。 如果出现了“选择环境”的提示,选择“C++ (GDB/LLDB)”。在“选择配置”中,G++ 用户选择 g++.exe - 生成和调试活动文件;Clang 用户选择 clang++ - 生成和调试活动文件

???+ warning 配置名称并非固定,而是可以自定义的。不同的操作系统可能具有不同的配置名称。

完成后,VS Code 将自动完成初始化操作并弹出一个 launch.json 配置文件。关闭它。

至此,所有的配置流程已经完毕。再次按下F5即可看到软件下方的调试信息。

若要在以后使用 VS Code 编译并调试代码,所有的源代码都需要保存至这个文件夹内。若要编译并调试其他文件夹中存放的代码,需要重新执行上述步骤(或将旧文件夹内的 .vscode 子文件夹复制到新文件夹内)。

开始调试代码

使用 VS Code 打开一份代码,将鼠标悬停在行数左侧的空白区域,并单击出现的红点即可为该行代码设置断点。再次单击可取消设置断点。

按下F5进入调试模式,编辑器上方会出现一个调试工具栏,四个蓝色按钮从左至右分别代表 GDB 中的 continue,next,stepuntil

如果编辑器未自动跳转,点击左侧工具栏中的“调试”图标进入调试窗口,即可在左侧看到变量的值。

在调试模式中,编辑器将以黄色底色显示下一步将要执行的代码。

配置 clangd

???+ warning 由于功能冲突,安装 clangd 插件后 C/C++ 插件的 IntelliSense 功能将被自动禁用。(调试等功能仍然使用 C/C++ 插件。)如果 clangd 插件的功能出现问题,可以查看是否禁用了 C/C++ 插件的 IntelliSense 功能。

简介

LLVM 官网上对 clangd 的介绍是这样的:

Clangd is an implementation of the Language Server Protocol leveraging Clang. Clangd’s goal is to provide language“smartness”features like code completion, find references, etc. for clients such as C/C++ Editors.

简单来说,clangd 是 Clang 对语言服务器协定(Language Server Protocol)的实现,提供了一些智能的特性,例如全项目索引、代码跳转、变量重命名、更快的代码补全、提示信息、格式化代码等,并且能利用 LSP 与 Vim、Emacs、VSCode 等编辑器协作。虽然官方给出的定义是 LSP 的实现,但 clangd 的功能更接近语言服务器(Language Server)而不仅仅只是协议本身。

VS Code 的 C/C++ 插件也有自动补全等功能,但在提示信息的易读程度的准确度等方面与 clangd 相比稍逊一筹,所以我们有时会使用 clangd 代替 C/C++ 插件来实现代码自动补全等功能。

安装

Linux 用户可以直接用内置的包管理器安装 clangd,各个发行版的操作大同小异。

# Ubuntu/Debian
sudo apt install clangd 

有的发行版只需要安装 clang。

# Arch/Manjaro
sudo pacman -S clang

对于 macOS 用户,由于自带的 XcodeCommandLineTools 中的 LLVM 不包含 clangd,需要使用 Homebrew 安装 LLVM。

brew install llvm

Windows 用户在 LLVM Download Page 上下载二进制文件并安装。

VS Code 插件

打开 VS Code 插件商店,在搜索栏中输入 clang 找到 clang 插件并安装

现在就可以享受 clangd 的自动补全等功能了。