VSCode是微软出品的轻量型文本编辑器。通过各种插件可以将其打造成适用于不同语言和场景的IDE。扩展性、开箱即用、启动的迅速性都是其显著的优点。不足之处,可能没有IDE那么“专业”,应对大型项目会吃力。但对小型嵌入式开发项目、前端等有很好的支持。博主也使用VSCode搭配插件latex workshop来进行latex写作,感觉非常便捷。

但博主一直没有系统进行学习,对VSCode也不太熟悉,一直停留在能用就行的层面。对VSCode编程配置、同步设置、插件使用与配置等等都不太熟悉。因此,打算读一读韩骏老师写的《Visual Studio Code 权威指南》,期望达到对VSCode的中等熟悉程度,提供工作效率。

通过阅读本书,具体希望解决如下几个问题:

带着问题读书
  • VSCode如何跨平台使用,保留插件配置?
  • 常用VSCode文本编辑使用技巧有哪些?
  • 如何配置C/C++开发环境?

1 安装VSCode

1.1 windows

官网下载安装包后,根据引导安装。

此处注意勾选将Code添加到Windows资源管理器文件和目录上下文菜单,之后就可以右键通过Code作为项目打开文件夹。

1.2 linux

ubuntu可以在应用商店安装。

也可通过命令行 sudo snap install --classic code

2 用户设置与工作区设置

用户设置(User Settings):这是一个全局范围的设置,会应用到所有的Visual Studio Code实例中。

工作区设置(Workspace Settings):设置被保存在相应的工作区,只会对相应的工作区生效。工作区设置会覆盖用户设置。此外,工作区设置对于团队成员分享项目的设置也是十分有用的。一般来说,工作区设置的设置文件也会被提交到版本控制工具(如Git)中去。

打开设置的快捷键为 ctrl + ,,可通过UI界面进行用户和工作区设置,也可以通过json格式设置,二者等价。一般复杂的设置采用json格式。

2.1 常用设置

控制编辑器自动格式化粘贴的内容: "editor.formatOnPaste":true

在保存文件后进行代码格式化: "edit006Fr.formatOnSave":true

改变字体大小:

  • 编辑区域 "editor.fontsize":18,
  • 集成终端 "terminal.integrated.fontsize":14,
  • 输出窗口 "[Log]":{"editor.fontsize":15}

调整窗口的缩放级别: "window.zoomLevel":1

设置自动保存的模式: "files.autoSave":"afterDelay" "files.autoSaveDelay":1000

设置一个制表符(Tab)等于的空格数: "editor.tabsize":4

设置按Tab键时插入空格还是制表符(Tab): "editor.insertSpaces":true

3 编辑器设置

3.1 并排显示

单电脑只得分屏分栏了,有个显示器就不用麻烦了。快捷键 ctrl+ \

3.2 缩略图

设置中打开:"editor.minimap.enabled": true,。点击缩略图,可以快速定位到代码块大致区域。

3.3 面包屑导航

点击导航可以快速回到上级菜单,通过菜单栏【查看–痕迹导航】打开。

3.4 禅模式

自带快捷键不方便,在设置,键盘快捷方式,修改为 ctrl+alt+z。通过按两次esc退出。

F11全屏模式,再按一次退出。

4 代码编辑

4.1 多光标

Visual Studio Code支持在多光标的情况下,对代码进行快速编辑。通过多个光标,你可以同时编辑多处文本。有以下几种方式可以添加多个光标。

  • Alt+Click:按住AIt快捷键,然后单击鼠标左键,就能方便地增加一个新的光标。
  • Ctrl+Alt+Down:按下此快捷键,会在当前光标的下方,添加一个新的光标。
  • Ctl+AIt+Up:按下此快捷键,会在当前光标的上方,添加一个新的光标。
  • Ctl+D:第一次按下Ctrl+D快捷键,会选择当前光标处的单词。再次按下Ctl+D快捷键,会在下一个相同单词的位置添加一个新的光标。
  • Ctl+Shift+L:按下此快捷键,会在当前光标处的单词所有出现的位置,都添加新的光标。

4.2 列选择

按住 shift+alt快捷键,拖动鼠标,实现对列选中。

4.3 代码格式化

鼠标右键格式化文档,或快捷键 shift+alt+f

4.4 代码折叠

使用 shift+click可以展开或折叠内部所有代码块,这样可以较清晰看到代码骨架。

  • 全部折叠:ctrl + k + 0
  • 全部展开:ctrl + k + j

4.5 跳转到定义

通过F12快捷键或编辑区域右键菜单中的Go to Definition,你可以跳转到一个符号的相应定义。按下Ctrl快捷键,并且悬停在一个符号上,就会出现相应的声明预览。

4.6 跳转到类型定义

通过编辑区域右键菜单中的Go to Type Definition,可以跳转到一个符号的类型定义。

4.7 查找所有引用

通过Shift+Alt+F12快捷键或编辑区域右键菜单中的Find All References,你可以查看一个符号的所有引用。

4.8 括号匹配

对于匹配的括号,当鼠标放在某一个括号上时,相对应的括号也会被高亮显示。

通过 Ctrl+Shift+\快捷键,可以在匹配的括号之间进行跳转。

5 常用快捷键

5.1 通用快捷键

  • Ctrl+Shift+P或F1:打开命令面板。
  • Ctrl+Shift+N:新建一个Visual Studio Code窗口。
  • Ctrl+W:关闭当前窗口。
  • Ctrl+,:打开用户设置。
  • Ctrl+`:打开终端。

5.2 跳转

  • Ctrl+P:文件跳转。
  • Ctrl+Shift+Tab:在所有打开的文件中跳转。
  • Ctrl+Shift+O:跳转到文件中的Symbol(符号)。
  • Ctrl+T:搜索所有的Symbol。
  • Ctrl+G:跳转到某一行。
  • Alt+←/→:向后/向前跳转。

5.3 基本编辑

  • Ct+X:剪切当前行(当没有选定任何文本时)。
  • Ctr+C:复制当前行(当没有选定任何文本时)。
  • Alt+↑/↓:把当前行的内容向上下移动。
  • Shift+Alt+↑/↓:把当前行的内容向上/下复制。
  • Ctrl+Shift+K:删除当前行。
  • Ctrl+/:添加或删除当前行的注释。
  • Home/End:光标移动到当前行的起始/末尾。

5.4 编程语言编辑

  • Ctrl+Shift+I:格式化文档。
  • Ctrl+K Ctrl+F:格式化选定内容。
  • F12:跳转到定义。
  • Alt+F12:在当前页查看定义。
  • Shift+F12:查看引用。
  • F2:重命名符号。
  • Ctrl+.:快速修复。

5.5 搜索与替换

  • Ctrl+F:搜索。
  • Ctrl+H:替换。
  • Ctrl+Shift+F:全局搜索。
  • Ctrl+Shift+H:全局替换。

5.6 多光标与选择

  • Alt+Click:插入一个新的光标。
  • Shift+Alt+↑/↓:在上方/下方添加一个光标
  • Ctrl+L:选中当前行。
  • Shift+Alt+→:扩大选中的范围。
  • Shift+Alt+←:缩小选中的范围。

5.7 显示

  • F11:切换全屏模式。
  • Ctrl+=:放大。
  • Ctrl+-:缩小。

5.8 编辑器管理

  • Ctrl+:分割编辑器。
  • Ctr+1/2/3:把焦点移动到不同的编辑器组。

5.9 文件管理

  • Ctrl+N:新建文件.
  • Ctrl+O:打开文件。
  • Ctrl+N:保存。
  • Ctrl+N:另存为.
  • Ctrl+Tab:打开下一个文件。
  • Ctrl+Shift+Tab:打开前一个文件。

6 C/C++环境

6.1 安装C/C++编译器

下载TDM-GCC Compiler,一般已经自动添加bin文件路径到系统环境变量,若没有则需手动添加。

验证环境:gcc --version

6.2 创建C/C++文件

使用插件C/C++Project Generator,可以生成项目骨架。

6.3 程序调试配置

创建tasks.json文件

打开cpp文件。在顶部的菜单栏中选择Terminal→Configure Default Build Task。选择C/C++:g++.exe build active file选项。

选择好构建任务后,Visual Studio Code会在vscode文件夹中创建一个tasks.json文件。

在顶部的菜单栏中选择Terminal→Run Build Task。

在终端输入 .\test.exe,会执行结果。

创建launch.json文件

在顶部的菜单栏中选择Debug→Add Configuration,然后选择C++(GDB/LLDB)。选择g++.exe build and debug active file选项。launch.json为调试配置文件。

创建c_cpp_properties.json

通过Ctrl+Shift+P快捷键打开命令面板,然后输入并执行C/C++:Edit Configurations(U)命令,便能打开C/C++设置页面。可以直接在设置页面中对C/C++的设置进行更改。Visual Studio Code会把相应的修改同步到.vscode文件夹的c_cpp_propertiesjson文件中。

6.4 CMake项目管理

CMake 允许开发者编写一种平台无关的 CMakeList.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件1

Makefile是用来设置编译规则的文件,而make则是用来执行Makefile。make根据Makefile中写的内容进行编译和链接,make更像是一个批处理的工具,可以批处理源文件,只要执行一条make命令,就可以实现自动编译2

当我们编译整个项目工程的时候,make只会编译我们修改过的文件,没有修改过的就不用重新编译,这样我们debug了一个小bug后重新编译就不用花费大量的编译时间。只要没有添加文件或者删除文件,Makefile的内容都是不需要修改的。所以使用make+Makefile极大的提高了我们的工作效率2

对于一些不是很大的工程,Makefile完全是可以我们手工写的,但是工程非常大的时候,手写Makefile也是一件麻烦的事,而且Makefile又不是万能的,换了一个别的平台,Makefile又得重写。于是又有人想,我们是不是可以自动生成一个Makefile呢?只需要把所有源文件读入就行,所以后面又出现了另一个工具,可以跨平台项目管理的工具cmake,cmake就可以生成Makefile文件给make去执行,这样就不用跨平台了还得去修改2

cmake是怎么生成Makefile的?

其实cmake又是根据一个叫CMakeLists.txt的文件生成Makefile的,就是make是用来执行Makefile的,cmake是用来执行CMakeLists.txt的。那CMakeLists.txt又是谁生成的?哈哈!CMakeLists.txt是自己手写的哦2

拓展资料


  1. https://zhuanlan.zhihu.com/p/534439206 ↩︎

  2. https://zhuanlan.zhihu.com/p/431118510 ↩︎