现代编辑器食用指北-VSCode
GNAQ
2018-07-18 10:29:35
![](https://cdn.luogu.com.cn/upload/pic/23996.png)
# 7/25 15:17 更新:
**由于洛谷粘贴代码的格式问题,按照本文之前的代码配置`tasks.json`和`launch.json`报错(所有$后都出现了一个空格),请重新复制代码。**
**这个问题的出现是我本人审校不认真所造成的。在此我对各位读者和洛谷日报的负责人员表示歉意。**
-----
Visual Studio Code (简称 VS Code / VSC) 是一款免费**开源**的现代化轻量级代码编辑器,**使用Web技术[Electron](https://electronjs.org/)搭建**,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,**支持插件扩展**。软件跨平台支持 Windows、Mac 以及 Linux。
接触这款编辑器之后的感受正如VSCode官网所述:VSCode Redefined Code Editing.这款编辑器带来的强大的功能是Dev-C++等古董编辑器望尘莫及的。
### 目录
1. 安装VSCode
2. 开始编辑代码
3. 编辑器基本设置
4. 键盘快捷键配置
5. 如何调试代码 & 一个sample & C++补全
6. 美化VSCode
7. 插件入门: Hello,World
---------------
## 安装VSCode
![](https://cdn.luogu.com.cn/upload/pic/23997.png)
在VSCode官网可以get不同版本的VSCode安装程序。其中Stable为稳定版,Insiders为测试版。选择你喜欢的版本下载即可。
Windows用户安装VSC时可以选择把VSC注册到path。也可以加入到右键菜单,方便打开文件。
终端可以使用`code`命令启动VSC。
## 开始编辑代码
VSC是长这个样子的:
![](https://cdn.luogu.com.cn/upload/pic/24000.png)
侧边栏可以管理调试、打开文件、管理扩展、搜索、管理源码
右下角的一排选项可以更改正在编辑的文件的格式。
> “哇,看起来好高级的样子!” 你激动的创建新文件并写下了helloworld。
但是好像发生了一些奇怪的事情……
> 怎么没有高亮啊喂!?
![](https://cdn.luogu.com.cn/upload/pic/24004.png)
嘿嘿,其实正确的打开方式是这样的:
1. 可以在右下角点击`纯文本`并修改为`C++`
2. 也可以在保存文件时更改后缀为`.cpp`
> 那这不也太麻烦了?!
不要着急~一会你就知道更简便的方法了。
## 编辑器基本设置
从左下角可以打开设置界面。
> 啊喂?!这个设置界面怎么和Dev-C++的不一样啊?这是什么鬼?
其实VSC的设置是一个`.json`文件,可以通过修改参数的方法更改设置。
![](https://cdn.luogu.com.cn/upload/pic/24005.png)
左侧是默认设置,右侧是用户自定义设置。
我们试着修改一个设置,比如**给滚动添加动画**
在上面的搜索框输入scroll或者打开`编辑器`找到它:
![](https://cdn.luogu.com.cn/upload/pic/24007.png)
点击最左面的铅笔图标,将参数修改为`true`(这时你可以看到右侧会多出一行代码)并按下`Ctrl+S`保存设置,我们就修改完成了!
大部分设置都是这样修改的,少部分需要输入几个参数。设置都附有注释(不过部分是英文的,TAT)。下面是我的设置:
![](https://cdn.luogu.com.cn/upload/pic/24009.png)
还记得我们提到的代码格式问题吗?搜索`defaultLanguage`,将这个设置修改为`cpp`即可~
顺带一提,你会偷偷发现上面出现了`Settings (Preview)`这个选项卡。这是VSC的新版设置界面(和现在的这个不太一样),有兴趣的同学可以自己研究一下。
## 键盘快捷键配置
![](https://cdn.luogu.com.cn/upload/pic/24019.png)
键盘快捷键的设置也在左下角的设置按钮里。打开之后可以看到上图的界面。
默认的快捷键非常方便,我没有修改快捷键。
这里给出几组最常用的快捷键,可以大幅度提高效率(灵活使用甚至可以丢掉鼠标写代码):
### 编辑器与窗口管理
- 打开 `Ctrl+O`
- 新窗口 `Ctrl+Shift+N`
- 新标签页 `Ctrl+N`
- 关闭整个VSC窗口 `Ctrl+Shift+W`
- 关闭当前标签页 `Ctrl+W`
- 重新打开刚刚关闭的标签页 `Ctrl+Shift+T`
- 切换标签页 `Ctrl+Tab`
- 创建一个新编辑器并将当前页面复制过去 `Ctrl+\`
- 在前三个编辑器之间切换 `Ctrl+1 2 3`
- 将焦点编辑器移动位置 先按下 `Ctrl+K` 左下角出现提示后用 `← →` 移动 或者可以 `Ctrl+Alt+←→`
- 在标签页之间切换 `Alt+1~9`
### 代码编辑
- 搜索 `Ctrl+F`
- 替换 `Ctrl+H`
- 复制光标所在行 只需按下`Ctrl+C`即可。
- 去掉行尾空格 `Ctrl+K` 然后 `Ctrl+X`
- 切换行注释(可多行) `Ctrl+/`
- 代码缩进 `Ctrl+[` 或 `Ctrl+]`
- 当前行上下移动 `Alt+↑↓`
- 当前行后插入一行 `Ctrl+Enter`
- 当前行前插入一行 `Ctrl+Shift+Enter`
- 选中下一行 `Ctrl+i`
- **(神级辅助键) 撤销光标上次移动** `Ctrl+U`
- 选中下个高亮的匹配项 `Ctrl+D`
- **多光标模式** `Atl+鼠标单击`即可在单击处创建新的光标
- **(这个模式非常灵活,可以搭配多种操作提高效率)**
- **(神级辅助键) 速览定义** `Alt+F12`
- 转到定义 `F12`
- Zen模式(一个奇怪的类似全屏的模式) `Ctrl+K` 然后 `Z`
- **打开自动保存** `Ctrl+Shift+P`之后输入`AutoSave`,选中,按下回车。
- **打开终端** `Ctrl+~`
还有一个炒鸡强大的按键:
**鼠标中键**
> 我的鼠标滚轮能按下去?
对!它非常的好用。
按住鼠标中键并选择=`Alt+Shift`选择 (既选择矩形区域)
![VSC1.gif](https://i.loli.net/2018/07/19/5b5094fd35161.gif)
用鼠标中键关闭编辑器/选项卡/通知:在空编辑器/选项卡/通知条**任意位置**按下中键即可
![VSC4.gif](https://i.loli.net/2018/07/19/5b5094fc61ccb.gif)
![VSC2.gif](https://i.loli.net/2018/07/19/5b5094fd41039.gif)
再也不用对准×号了有木有!?
## 调试代码
> 再怎么说它也只是一个Editor!怎么调试代码呢?
VSC的插件很强大。这里我们使用一个插件。
打开插件商店,搜索`C/C++ Compile Run`并安装。
同样的方法可以安装C++辅助插件`C/C++`(这个是微软官方的插件)
![](https://cdn.luogu.com.cn/upload/pic/24022.png)
安装完成,重启VSC后马上可以使用,按`F6`就可以偷税的调试当前的单文件C++代码了。但是……
> 我是Windows,好像报错了,怎么办?
**(7/25 15:19更新:) 由于部分平台使用的终端默认为Windows Powershell,因此不需要更改即可使用插件,请自行尝试是否需要更改。 **
对于Windows用户,这个插件不尽人意,我们需要稍微魔改一下:
VSC的插件目录在`C:\User\(your username)\.vscode\extensions\`
我们找到一个叫`danielpinto8zz6.c-cpp-compile-run-0.0.6`的文件夹,在里面的`out`文件夹里有一个`extension.js`,用VSC打开它。
![](https://cdn.luogu.com.cn/upload/pic/24021.png)
你可以像我一样修改图中这几行。如果你是js大佬,你可以进行更精彩的修改。
> 改好了,但是还是显示错误?
`path`里没有g++的路径!
### 下载MinGW
需要下载MinGW(注意选择对应的位数)安装并将g++.exe的路径添加到path。
去搜索MinGW并下载:
![](https://cdn.luogu.com.cn/upload/pic/24023.png)
你会得到一个奇怪的玩意儿:
![](https://cdn.luogu.com.cn/upload/pic/24024.png)
勾选图中几个并选择Apply即可下载了。
### 添加路径到Path
按下`Win+Pause/Break`两个键并打开左侧的`高级系统设置`,找到`环境变量`。
![](https://cdn.luogu.com.cn/upload/pic/24027.png)
编辑图中的那一项。添加路径比如默认安装路径`C:\MinGW\bin`。**注意前面的分号**。
![](https://cdn.luogu.com.cn/upload/pic/24030.png)
**记的还要重启VSC哦。**
## 利用VScode写题目
> 这算啥啊,可不可以show一下VSC的强大呢?
那我就用一个例子 [[JLOI2009]神秘的生物](https://www.luogu.org/problemnew/show/P3886)来证明VSC的强大!
![](https://cdn.luogu.com.cn/upload/pic/24209.png)
首先用VSC打开~~工作~~写题文件夹。`文件(F)`->`打开文件夹` 打开你的文件夹 (也可以直接创建文件,区别在于不打开文件夹无法用`F5`调试,但是可以用上文的插件调试)
![](https://cdn.luogu.com.cn/upload/pic/24188.png)
`Ctrl+N`新建一个文件保存到此文件夹,打开文件自动保存。
![](https://cdn.luogu.com.cn/upload/pic/24176.png)
头文件补全,非常方便
![](https://cdn.luogu.com.cn/upload/pic/24178.png)
感觉哪儿不对……?速览定义!
![](https://cdn.luogu.com.cn/upload/pic/24180.png)
使用小地图和大纲快速定位
![VSC1.gif](https://i.loli.net/2018/07/18/5b4f3b704fbf5.gif)
使用多光标模式修改
![VSC1.gif](https://i.loli.net/2018/07/18/5b4f3ddd7670a.gif)
如果按照上一步配置好了,可以用`F6`快速运行代码。
### 附:F5 Debug的配置方法
1. 准备好一个工作文件夹,以后就用这个文件夹写代码
2. `文件(F)`->`打开文件夹` 打开你的文件夹
3. 写一个程序保存到这个打开的文件夹
![](https://cdn.luogu.com.cn/upload/pic/24189.png)
4. 按下`F5`并选择`GDB`
![](https://cdn.luogu.com.cn/upload/pic/24190.png)
5. 用以下内容替换`launch.json`,注意`miDebuggerPath`要换成自己的`GDB`路径,还要记得`\`是要用`\\`代替哦~
[点我](https://paste.ubuntu.com/p/czGGSdZKMb/)
再次`F5`,点击`配置任务`,选择`使用模板创建`,随便选一个模板。
![](https://cdn.luogu.com.cn/upload/pic/24192.png)
用以下内容替换`tasks.json`
[点我](https://paste.ubuntu.com/p/cZFsrwzjcX/)
你会看到:
![](https://cdn.luogu.com.cn/upload/pic/24195.png)
嗯,可以`F5`调试啦!用`GDB`的同学可以尝试用以下内容覆盖`launch.json`和`tasks.json`
[点我](https://paste.ubuntu.com/p/nmBrTQkb7W/)
然后`F5`即可!
### 附:C++补全
来体验一下VSC的强大插件吧!
搜索`C/C++ Clang Command Adapter`并安装插件
![](https://cdn.luogu.com.cn/upload/pic/24298.png)
如果你没有安装Clang,那么可以装一个:
[Download](http://releases.llvm.org/download.html)
然后记得像`GDB`一样把`bin`添加到`PATH`里去。
最后,打开`设置`,在用户设置里添加如下内容(C++):
```javascript
"clang.executable": "clang",
"clang.completion.enable": true,
"clang.cxxflags": [
"-std=c++11",
"-IC:/MinGW/lib/gcc/mingw32/6.3.0/include/c++"
]
```
嗯,上面的`"-IC:/MinGW/lib/gcc/mingw32/6.3.0/include/c++"`头文件路径要换成自己的。
> 还可以用MinGW的头文件?
对,就是有这种操作。
## 美化VSC
VSC自带多款图标和配色。在插件商店也能找到更多的配色。由于各人口味不同,这里就不安利啦~
(想要Sublime和Atom theme的童鞋们可以安装这两个theme)
![](https://cdn.luogu.com.cn/upload/pic/24255.png)
![](https://cdn.luogu.com.cn/upload/pic/24256.png)
我后来换成了One-Dark-Pro,感觉很清爽。
## 一个简易插件
既然已经说了这么多,我们也不妨探讨一下VSCode的插件是怎么烤出来的……
[[Official]Your first VSCode extension](https://code.visualstudio.com/docs/extensions/example-hello-world)
首先当然是安装`nodejs`辣!
[Node.js.org](https://nodejs.org)
然后`npm install -g yo generator-code`
(这个过程巨慢,为了消磨时间,可以把[[JLOI2009]神秘的生物](https://www.luogu.org/problemnew/show/P3886)切掉……)
`yo code`既可开始搭建插件。
然后我们输入`2`选择第二项`JavaScript`
然后起名字~比如Hello
![](https://cdn.luogu.com.cn/upload/pic/24234.png)
然后等一会它会提示让你打开创建的插件目录。
![](https://cdn.luogu.com.cn/upload/pic/24214.png)
附带的markdown文档 (插件:Markdown Preview Enhanced)
![](https://cdn.luogu.com.cn/upload/pic/24231.png)
如果只是本地做做demo,你会发现这些其实没用,可以删掉。(quickstart里有说`test`是测试用的)
`F5`可以调试插件!
在弹出的`扩展开发主机`中按`F1`调出命令条并输入`Hello World`,就可以运行这个插件啦qwq
![](https://cdn.luogu.com.cn/upload/pic/24258.png)
以上就是VSC~~编写竞赛代码~~的基本食用方法,感谢大家阅读本文,也祝大家~~玩~~用的愉快~