VSCode
官方课程现在被下架了,要自行搜索 下载。
https://bbs.csdn.net/topics/395584701
第一章:基础入门
1.快速上手VSCode
1.1命令面板
Ctrl+Shift+P
1.2命令行中的code
如
$ code -r -d a.txt b.txt#用vscode对比
$ ls | code -#接收管道数据,并用vscode打开
1.3界面概览
切换集成终端 Ctrl + `(Tab键上面那个键)
文件资源管理器 Ctrl + Shift + E
跨文件搜索 Ctrl + Shift + F
2.双手不离键盘
2.1光标移动
2.1.1针对单词的光标移动
Ctrl + 方向
2.1.2光标移动到行首或者行末
行首 Home
行末 End
2.2文本选择
2.2.1光标移动中的键 + Shift
2.2.2选择括号所有内容
命令面板找到命令 “选择括号所有内容”,可以选括号中的。但这个操作默认没有绑定快捷键。
2.2.3选中一个单词
Ctrl + D
2.3文本删除
选中后删除
“删除左/右侧所有内容“(Win上没有绑定快捷键)
Ctrl + Shift + K
2.4自定义快捷键
开命令面板,搜索“打开键盘快捷方式”
3.快捷键进阶
3.1代码行编辑
删除整行Ctrl + Shift + K
剪切整行Ctrl + X (不需要选中)
在下一行新建一行Ctrl + Enter
在上一行新建一行Ctrl + Shift + Enter
移动一行、多行Alt + 上下方向键
3.2注释与反注释
Ctrl + /
3.3代码格式化
全文Alt + Shift + F
选中的Ctrl + K Ctrl + F (c#有效;lua无效,lua的格式化插件不支持?)
命令面板 “重新缩进“、“重新缩进选中行“
3.4其它杂七杂八
“转换为大写”
“转换为小写”
合并代码行 Ctrl + J(把下面的一行搬上来)
撤销光标的移动和选择 Ctrl + U
4.多光标
4.1使用鼠标
Alt + 左键
4.2使用键盘
Ctrl + Alt + 下方向键
4.3“Cmd + D”选中下一个
4.4“Alt + Shift + i”
选中多选的状态下,会在每行末都生成一个光标
5.文件、符号、代码之间跳转
5.1文件跳转
Ctrl + Tab Tab Tab Tab
Ctrl + P
5.2行跳转
Ctrl + g
Ps:高阶组合技巧。如果你想跳转到某个文件的某一行,你只需要先按下 “Cmd + P”,输入文件名,然后在这之后加上 “:”和指定行号即可.
5.3符号 (Symbols) 跳转
Ctrl + Shift + O
5.4 定义 (Defnition) 和实现 (implementation) 跳转
F12
Ctrl + F12
(JavaScript /C#定义和实现恰好是相同的)
6.鼠标操作
6.1文件跳转
双击左键,则会将当前光标下的单词选中。
三击左键,则会选中当前这一行代码。
四击左键,则会选中整个文档。
选择连续的多行:多选编辑器的最左边,显示的是每一行的行号。如果你单击行号,就能够直接选中这一行。如果你在某个行号上按下鼠标,然后上下移动,则能够选中多行代码。
6.2文本编辑
拖放功能 选中后拖放(剪切)
拖放功能 选中后 + Ctrl 拖放(复制粘贴)
6.3多光标
1、上面提到过的Alt + 左键
2、中键:按下鼠标中键,然后对着一段文档拖出一个框,在这个框中的代码就都被选中了,而且每一行被选中的代码,都拥有一个独立的光标
6.4跳转
Ctrl + 鼠标左键
7.代码自动补全、快速修复和重构
7.1自动补全、快速预览、参数预览
VS Code 为编程语言工作者提供了统一的 API ,即 Language Server Protocol,每种语言都能够通过实现这个 API 在 VS Code 上得到类似 IDE 的开发体验,而各个语言根据这个 API实现的服务,就被称为语言服务。
自动补全由语言服务提供。
自动补全窗口 按ESC暂时关闭,再打字就会再出来。
自动补全可以设置
7.2快速修复
不确定什么时候能够看到这个黄色的灯泡图标?
编辑器在你把光标移动到这个错误或者警告所在的代码上时才会展示这个图标。
7.3重构
7.3.1改变量名F2
当我们想修改一个函数或者变量的名字时候,我们只需把光标放到函数或者变量名上,然后按下 F2,这样这个函数或者变量出现的地方就都会被修改。
7.3.2抽取小方法
只需选中那段代码,点击黄色的灯泡图标,然后选择对应的重构操作。(语言服务提供,js支持,c#和lua都不支持)
7.4基于单词的自动补全
编辑器通过分析当前的文件里的内容,进行简单的正则表达式匹配,给我们建议已经出现过的单词。
当然,如果你觉得语言服务的提示已经足够好了,不需要这么暴力、这么笨的文本提示,那你也可以通过设置 “editor.wordBasedSuggestions” 将其关闭。
8.代码片段
代码片段是对常用代码的一个抽象,它保留了大部分不变的代码,然后把需要经常变动的部分,换成变量,这样等下次调用它的时候,只需要把这些变量换成我们需要的就可以了。
平时用的for/fori/string.format,其实就是内置、插件提供的代码片段。我们也可以自定义。
Tab:下一个坑位
Shift + Tab: 上一个坑位
9.代码折叠、小地图和面包屑特性
9.1代码折叠
9.1.1 “最内层”和“可以被折叠”:
Ctrl + Shift + 左方括号
Ctrl + Shift + 右方括号
9.1.2 其它
“全部折叠”
“折叠级别1”
“折叠级别2”
9.2小地图
editor.minimap.renderCharacters
9.3面包屑
readcrumb,面包屑导航
“VS Code 的代码量非常大,现在大约有 40 万行代码,我自己肯定无法一下子了解熟悉所有的功能。所以,每次当我需要去了解一个新功能时,我都会先把所有类和函数全部折叠起来,了解一下它的大致“形状”,然后再依次展开我感兴趣的函数,仔细斟酌。我觉得很多时候,这个方法比代码调试还来得有效。”
10.搜索
10.1单文件搜索
10.1.1Ctrl + F
大小写敏感Case:Alt + C
全单词匹配Word:Alt + W
正则表达式匹配RegularExpression:Alt + R (vscode里面的正则表达式使用的是 JavaScript 的正则引擎)
选定内容中查找L???:Alt + L
Enter:下一个搜索到的
Shift + Enter:上一个搜索到的
10.1.2Ctrl + H
10.1.3搜索配置
editor.fnd.seedSearchStringFromSelection 自动填充搜索关键词。
editor.fnd.autoFindInSelection 选中多行文本,开始搜索时,自动查找选定内容
10.2多文件搜索和替换
Ctrl + Shift + F
10.2.1glob
“包含的文件” 和 “排除的文件”。这两个配置的书写格式是 glob,很多编程语言和配置都会使用 glob 来模糊匹配文件名和文件夹,gitignore也是哦
10.2.2多文件搜索配置
search.collapseResults 是否自动展开搜索结果
search.location 多文件搜索视图的位置
11.编辑器设置
editor.renderWhitespace将所有的空格符、制表符等全部都渲染出来
editor.renderIndentGuides缩进参考线
editor.minimap.enabled小地图开启
editor.cursorBlinking、editor.cursorStyle、editor.cursorWidth光标样式相关
editor.formatOnSave、editor.formatOnType 自动格式化
files.autoSave自动(延迟)保存
files.defaultLanguage新建时的文本默认格式,如定为markdown,方便。
其它:
editor cursor,是跟光标渲染和多光标相关的设置;
editor fnd,是与编辑器内搜索相关的设置;
editor font,是与字体有关的设置;
editor format,是代码格式化;
editor suggest,是和自动补全、建议窗口等相关的配置
第二章:工作区
1.工作台和命令面板
1.1命令面板
问号?:命令面板所有支持的所有前缀
大于号>:所有的命令
@:所有符号
@::分类后的所有符号
:(什么都不输入)查找文件
命令面板commandPalette,可以看看设置中有哪些选项。
2.多文件夹工作区
*.code-workspace中可以加入多个文件夹
3.编辑器里做版本管理Git/SVN
切换内联视图
选定内容的stage/unstage
Git输出
4.编辑器里的内置的终端(集成终端)
Ctrl + ` 显示、隐藏
Ctrl + Shift + ` 新建
4.1终端中的快捷键
命令面板搜索“终端”
Ctrl + C/V
Alt +左右
Ctrl + F
……
4.2终端设置
4.2.1 终端里使用什么样的 Shell
默认:
Mac、Linux
VS Code 会检测你的默认 Shell 是什么,比如在我的系统上,我就是使用 Zsh,而如果没有找到的话,终端则会使用 Bash 或者 sh 作为启动时的 Shell 环境。
Win
Win10:PowerShell,Win10以下:Cmd
也可以你自己指定terminal.integrated.shell.windows、terminal.integrated.shell.osx 或者 terminal.integrated.shell.linux
4.2.2 终端的启动参数
terminal.integrated.shellArgs.x,如terminal.integrated.shellArgs.linux 修改为 -l,即在 Linux 环境下创建 Bash 的时候,使用登陆 Shell (login shell)
4.2.3 环境变量
控制集成终端创建 Shell 时,该使用哪些特殊的环境变量
terminal.integrated.env.osx、
terminal.integrated.env.linux 、
terminal.integrated.env.windows、
4.2.4 其它设置
terminal.integrated.cwd 用于控制 Shell 启动时的初始目录;terminal.integrated.rightClickBehavior 控制鼠标右键点击时的行为;terminal.integrated.enableBell 可以控制当脚本出错时是否要发出响声
terminal.integrated.scrollback 集成终端里的输出结果保留多少行
4.2.5 美化终端
Mac zsh 和 oh-my-zsh
Win Posh-Git
Ref:
将美化进行到底,把 PowerShell 做成 oh-my-zsh 的样子(将美化进行到底,把 PowerShell 做成 oh-my-zsh 的样子)
Windows命令行终端神器Cmder配置及美化指南
其中,cmder可以指定启动时使用的shell,可指定为powershell,然后在cmder\vendor\profile.ps1这个描述文件中来指定启动时执行的命令
vscode中启动powershell时执行cmder的psl
这样就可以不干扰系统中的powershell,即可以把“将美化进行到底,把 PowerShell 做成 oh-my-zsh 的样子”中的psl还原。vscdoe的setting.json如下:
{
"terminal.integrated.shellArgs.windows": [
"-ExecutionPolicy",
"Bypass",
"-NoLogo",
"-NoProfile",
"-NoExit",
// "-Command",
// "\"Invoke-Expression'.''D:\\profile.ps1'''\"",
". 'D:\\Program Files\\cmder\\vendor\\conemu-maximus5\\..\\profile.ps1'",
"-and",
"\"cls\""
],
"terminal.integrated.fontFamily": "Hack"
}
5.任务系统
任务系统的目的,是将各种形形色色的任务脚本尽可能地统一化,然后提供一套简单但又定制化强的方式操作它们.
6.工作区快捷键
6.1多个编辑器组
创建 Ctrl +
跳转 Ctrl + 1 Ctrl + 2 Ctrl + 3
6.2多个文件
跳转 Ctrl + Pagedown/Pageup
6.3网格布局
命令面板“网格”
6.4专注模式
隐藏“侧边” Ctrl+ B
禅模式 Shift + F11
6.5缩放
Ctrl + + / -
7.其它Tips&Tricks
7.1跳转
跳转回上一次光标所在的位置 Alt + Left
跳到到下一次光标所在的位置 Alt + Shift + Left
转到上一次编辑位置 “转到上一编辑位置” Ctrl + K Ctrl + Q
7.2复制粘贴
Cmd+ Shift + V则是粘贴纯文本 (Win上无效?)
editor.copyWithSyntaxHighlighting关闭复制富文本