VSCode配置

写在前面

工欲善其事,必先利其器。好的开发工具,能大大地提高开发的效率。以前一直使用 VIM 写代码,用 Source Insight 看代码,后来在朋友的推荐下切换到 VSCode,使用了一段时间,发现 VSCode 真的超级强大好用,而且是开源的,不得不让人青睐。写篇文章记录一下 VSCode 的配置以及插件,以便后续重新搭建环境可以作为参考。

安装

进入官网 https://code.visualstudio.com/ 下载并安装。

集成 cmder

cmder 也是一款非常优秀的开源 Windows 终端模拟器,完全可以代替 Windows 自带的 cmd 工具,可以在 cmder 官网下载。

通过快捷键 Ctrl + Shift + P 打开 VSCode 的命令面板,搜索”open settings”,修改 VSCode 的配置文件。

在 json 配置文件中添加以下内容:

1
2
3
4
5
6
7
8
"terminal.integrated.shell.windows": "cmd.exe",
"terminal.integrated.env.windows": {
"CMDER_ROOT": "$cmder_root_path"
},
"terminal.integrated.shellArgs.windows": [
"/k",
"$cmder_root_path/vendor/init.bat"
]

$cmder_root_path 替换成 cmder 所在的根路径,注意左反斜杠路径要加转义,即 \\,或者直接使用右反斜杠 /,与 Linux 风格保持一致。路径不能包含空格,否则无法正常工作

重启 VSCode 生效,按 Ctrl + ` 快捷键,就能在 VSCode 中的命令行窗口打开 cmder。

WSL 远程

WSL(Windows Subsystem for Linux) 是一款在 Windows10 系统下的 Linux 子系统,就是能在直接在 Windows10 上跑 Linux,不需要安装虚拟机。具体可以参考微软关于 WSL 安装的文档。

开发一般用到 Linux 环境,但是开启虚拟机电脑又会变卡,选择 WSL 是很好的解决方案,主要的优势就是快,而且方便。

VSCode 可以直接远程到 WSL,直接操作 WSL 的目录以及文件。需要安装 Remote - WSL 插件,在插件页面搜索安装即可。安装完成之后,按 Ctrl + Shift + P 快捷键打开命令面板,选择 Remote-WSL: New Window 就能远程到 WSL。

注意,WSL 远程的插件与本地插件是不能共用的,如果需要用到其他插件,要在插件页面安装到 WSL 上。

SSH 远程

WSL 基本能满足大部分的场景,但是特殊情况,比如嵌入式开发,用到交叉编译工具编译,WSL 是不支持交叉编译的。对于这种情况,我们会选择虚拟机或者服务器,以服务器为例,一般是没有图像界面的,VSCode 的 SSH 远程插件能远程到服务器,直接操作服务器下的目录以及文件。需要安装 Remote - SSH 插件,在插件页面搜索安装即可,跟 Remote - WSL 类似。

需要说明的是,SSH 每次都要输入密码比较麻烦,可以使用公私钥免密码登录。

首先,在 cmder 执行命令 ssh-keygen 生成公私钥对,提示输入密码时不设置密码,也就是直接回车。

其次,用编辑器打开公钥文件 id_rsa.pub,复制全部内容。

接着,ssh 远程登录到服务器,把公钥文件的内容粘贴到 ~/.ssh/authorized_keys 文件中。

最后,用 VSCode 远程到服务器,按 Ctrl + Shift + P 快捷键打开命令面板,选择 Remote-SSH: Connect to Host,在弹出的 ssh 连接框输入 ssh -i [私钥的绝对路径] yourname@remote_host

再次选择 Remote-SSH: Connect to Host 就可以看到刚才添加的远程主机。

第一次连接 VSCode 可能不能自动检测到远程的系统类型,会弹框让我们手动选择,选择正确的系统类型,就能开始使用了,就像在本地使用 VSCode 那样,非常方便。

注意,远程主机的插件与本地插件是不能共用的,如果需要用到其他插件,要在插件页面安装到远程主机上。

Markdown 预览增强

VSCode 默认支持 Markdown 预览,快捷键是 Ctrl + Shift + V,或者在命令面板面板运行 Markdown: Open Preview to the Side

但是自带的 Markdown 功能不是很强大,不支持 Latex 数学公式渲染,可以安装 Markdown Preview Enhanced 插件增强 Markdown 预览功能。

C/C++ 开发

一般开发环境是 Linux,这里使用 VSCode ssh 远程到 Linux 目标主机的模式。远程到目标主机后,安装 C/C++ 插件,并且在目标主机上安装 gcc 和 make 等开发工具。

1
2
sudo apt-get update
sudo apt-get install build-essential gdb make

打开一个 C/C++ 工程,或者新创建一个工程,用 Makefile 构建好编译规则,配置 VSCode。

编译配置

在菜单栏选择 Terminal > Configure Default Build Task,下拉列表显示 c++ 编译器的各种预定义构建任务,选择 C/C++: g++ build active file,会自动在工程目录下生成 .code/tasks.json 配置文件。参考以下内容修改 tasks.json 配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "Make Project",
"command": "/usr/bin/make",
"args": [
"-C",
"${fileDirname}"
],
"options": {
"cwd": "/usr/bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}

调试配置

在菜单栏选择 Run > Add Configuration…,下拉列表显示 gdb 调试器的各种预定义构建任务,选择 C++ (GDB/LLDB),会自动在工程目录下生成 .code/launch.json 配置文件。参考以下内容修改 launch.json 配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "gcc build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "Make Project",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}

preLaunchTask 填的是 tasks.json 的 label 值,表示在调试之前先执行编译任务。

更详细的指南,参考 VSCode 官方文档 GCC on LinuxDebug C++ in Visual Studio Code

快捷键冲突

Ctrl + `: 是 VSCode 打开命令行终端的快捷键,该快捷键会跟 cmder 的快捷键冲突,修改 cmder 的快捷键。

Ctrl + Shift + F: 是 VSCode 打开搜索面板的快捷键,该快捷键会跟搜狗输入法的快捷键冲突,修改搜狗输入法的快捷键。

Ctrl + Shift + P: 是 VSCode 打开命令面板的快捷键,该快捷键会跟 PicGo 图床工具的快捷键冲突,将其关闭。

评论