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。
...