强大的编辑功能是VSCODE受欢迎的一个原因。这一节,我们就先来了解一下VSCODE的编辑功能。
一、多光标
以下都是添加多光标的方法:
alt
+click
,按住alt,在想要添加光标的地方右键ctrl
+alt
+down
ctrl
+alt
+down
,当前位置上方或者下方添加光标ctrl
+d
,第一次按下在当前编辑单词的尾部添加光标,再次按下则跳转到同样单词的末尾添加光标ctrl
+shift
+l
,所有相同单词后添加光标
二、区域选取
我经常会遇到这样的问题,一段比较长的文件需要复制,我只能从开始按住鼠标左键滚动鼠标到最后再释放完成复制的选取。不仅容易出错,速度还慢(不能通过slidebar\minimap)。VSCODE可以完成这样的工作,选定当前位置,按下alt
+shift
,从当前位置开始到下一次点击区间都被选取(你甚至可以多次点击修改终点),刚刚看了一下文档,还有一个叫做Box选取,也就是用框框框住的区域,按住alt
即可开始选取。
三、自动保存
默认情况下VSCODE保存发生在用户主动做出保存操作,如ctrl
+s
,VSCODE可以设置files.autoSave
其自动保存:
- off
- afterDelay(默认1000ms,时间设置
files.autoSaveDelay
) - onFocusChange 编辑器焦点丢失
- onWindowChange 窗口焦点丢失
四、热退出
热退出是指用户关闭VSCODE时VSCODE保持方式files.hotExit
:
- off 禁止热退出
- onExit
- onExitAndWindowClose
目前没有太大的需求。
五、搜索和替换
和其他编辑器一样按下ctrl
+f
进行范围为当前编辑的文档的查找。如果查找的结果不止一个,可以按enter
跳到下一个。在右上角显示的弹窗有更多东西帮助我们搜索,如正则表达式、大小写、完全匹配和在结果中再次查找等等。
六、跨文件搜索
要是我想在整个工作区间查找可以通过ctrl
+shift
+f
来实现,在原来侧边栏位置可以看到工程内所有匹配结果。功能与ctrl
+f
大同小异,不过多了专门的筛选过滤器。
七、IntelliSence
代码补全功能,如果你要接受这个提示,按下Enter或者Tab即可,如果你想主动唤起提示,使用ctrl
+space
,不过通常他和输入法冲突了,需要修改一下快捷键。
八、代码格式化
也就是将当前代码整理一下,不是所有语言都内置支持这样的格式化,我常用的C++反正支持。
shift
+alt
+f
全部格式化ctrl
+k
f
选定格式化
格式化后:
Visual Studio 2019 C++反正是分号后自动格式化,相当实用,那么VSCODE是由可以实现相同的功能?当然可以!JSON设置一下即可。
editor.formateOnType
editor.formateOnSave
editor.formateOnPaste
。
九、代码折叠
每个代码有对应的自动折叠语法,如C++的while for循环,点击VSCODE行数右边的以下符号符号。
即可完成收起和展开,另外你也可以逐级收起,快捷键是shift+click
不过这个也被占用了,需要解决一下冲突。如果对于一些你想折叠但是语言没有自动折叠怎么办?OK!实用语言对应标记,标记起始和终止区域。
Language | Start region | End region |
---|---|---|
Bat | ::#region or REM #region | ::#endregion or REM #endregion |
C# | #region | #endregion |
C/C++ | #pragma region | #pragma endregion |
CSS/Less/SCSS | /#region/ | /#endregion/ |
Coffeescript | #region | #endregion |
F# | //#region or (#_region) | //#endregion or (#_endregion) |
Java | //#region or // | // #endregion or // |
Markdown | <!-- #region --> | <!-- #endregion --> |
Perl5 | #region or =pod | #endregion or =cut |
PHP | #region | #endregion |
PowerShell | #region | #endregion |
Python | #region or # region | #endregion or # endregion |
TypeScript/JavaScript | //#region | //#endregion |
Visual Basic | #Region | #End Region |
像是这样:
这里是快捷键:
- Fold (Ctrl+Shift+[) folds the innermost uncollapsed region at the cursor.
- Unfold (Ctrl+Shift+]) unfolds the collapsed region at the cursor.
- Toggle Fold (Ctrl+K Ctrl+L) folds or unfolds the region at the cursor.
- Fold Recursively (Ctrl+K Ctrl+[) folds the innermost uncollapsed region at the cursor and all regions inside that region.
- Unfold Recursively (Ctrl+K Ctrl+]) unfolds the region at the cursor and all regions inside that region.
- Fold All (Ctrl+K Ctrl+0) folds all regions in the editor.
- Unfold All (Ctrl+K Ctrl+J) unfolds all regions in the editor.
- Fold Level X (Ctrl+K Ctrl+2 for level 2) folds all regions of level X, except the region at the current cursor position.
- Fold All Block Comments (Ctrl+K Ctrl+/) folds all regions that start with a block comment token.
- Fold Marker Regions (Ctrl+K Ctrl+8) folds all marker regions.
- Unfold Marker Regions (Ctrl+K Ctrl+9) unfolds all marker regions
十、缩进
"editor.insertSpaces": true,
"editor.tabSize": 4,
VSCODE将会根据你的文件自动设置对应的缩进格式,当然你可以禁止这种行为:
"editor.detectIndentation":false
十一、文件编码支持
"file.encoding":utf8