本文不适合 VSCode 新人, 且内容比较杂, 可能造成阅读不便
基本操作
- 命令面板是最常用的,
mac下快捷键为cmd+shift+p或者F1, 几乎所有事情都可以在这里完成, 前提是你要熟悉命令的英文表述 - 适当的增加你觉得舒服的快捷键绑定, 不要害怕跟其他快捷键冲突, 适合自己的就是最好的
mac下cmd+p快速跳转文件, 其他用法输?@/#{symbol}跳转到当前文件/workspace中的symbol:{Number}跳转到任意行- 熟练使用这些快捷操作可以明显减少你碰鼠标的次数
cmd+k m切换语言模式cmd+shift+m切换问题面板,cmd+j切换集成终端- 换一个好看的配色以及一个好看且等宽的字体, 能极大地提高你编码的效率
"workbench.iconTheme": "material-icon-theme","workbench.colorTheme": "One Dark Pro Vivid","material-icon-theme.folders.theme": "specific","material-icon-theme.folders.color": "#26a69a","material-icon-theme.hidesExplorerArrows": true,"material-icon-theme.activeIconPack": "react_redux","editor.fontFamily": "'Hack-Italic', Menlo, 'Input Sans Narrow', Monaco, 'Courier New', monospace",
Zen Mode可以让你更专注与当前工作, 快捷键是cmd+k z, 记不住可以在命令面板搜(这是我非常喜欢的功能, 让人感到很舒服)Side by side editingVSCode 支持最多分为三列, 快捷键cmd+1/2/3- 文件类型关联, 比如某奇葩语法明明是
html非要搞成wxml, 明明是css非要搞成wxss
"file.associations": {".wxss": "css"}
- 除了可以使用
cmd+d来增加光标, 也可以使用opt+cmd+up/down/click来向上/下/点击位置增加光标 shift+opt+up/down复制到上/下一行,opt+up/down移动到上/下一行, 这都是很常用的了cmd+u可以回退到上一次光标的位置, 很有用- 使用
alt+cmd+[或者alt+cmd+]可以进行快速代码折叠/展开 shift+cmd+v能快速预览markdown文件- 跳转到定义, 可以
F12或者cmd+click反正都很麻烦, 都需要动右手 Git支持,Git Lens一个插件解决所有问题Git diff review时, 建议点击右上角的...选择切换到inline mode- 建议将
vscode设置为gitdiff默认tool
git config --global merge.tool code
CLI命令:code或者code-insiders- 每次都输入
code-insiders太长了, 所以一般alias icode=code-insiders code .算是比较常用的, 即使用vscode打开当前目录code --disable-extensions .遇到问题的时候你可能需要这个命令code --diff <file1> <file2>- 其他请参考
code -h
- 每次都输入
插件在精不在多
这里其实应该称之为 扩展 而不是 插件
$ icode --list-extensionsEditorConfig.EditorConfigHookyQR.beautifyPKief.material-icon-theme # 文件 icon 很精美Stephanvs.dot # 作图用的WakaTime.vscode-wakatime # 庖丁解牛, 可以分析你花时间在哪些项目哪些分支哪些模块上abusaidm.html-snippetsandys8.jest-snippetsbungcip.better-tomlchristian-kohler.path-intellisense # 路径补全dbaeumer.vscode-eslinteamodio.gitlenseg2.tslinteg2.vscode-npm-scriptflowtype.flow-for-vscodehollowtree.vue-snippetsjoelday.docthiskumar-harsh.graphql-for-vscodelukehoban.Goms-python.pythonms-vscode.cpptoolsoctref.veturspywhere.guidestimothymclane.react-redux-es6-snippetsvscodevim.vimwayou.vscode-todo-highlightxabikos.JavaScriptSnippetszhuangtongfa.Material-theme
debug 调试之道
- 初学者总觉得调试配置起来很难, 其实不然, 只要花时间看文档, 写个
lauch.json很容易 - 正确区分
lauch和attach - 只要你所编写的语言支持
language-server-protocol都可以在 vscode 中进行调试 - 打断点很简单, 右键可以设置
条件断点, 在表达式为true时触发 - 经常会有人疑惑为什么写的前端项目打断点不会断: 运行时在你的浏览器, vscode 无能为力 , 调试前端项目尽量使用
chrome devtool, 不要受某些高下载量的扩展(debugger in chrome)的影响
VSCodeVim - 真正的 editor
多记些快捷键对脑子有好处, 但总移动你的右手和低头却对身体有害, 所以跟我一样, 拥抱 vim 吧
- 扩展市场搜索
vim选择安装量最大的插件 gd- Go to definition, 跳转到定义gb- 找出与光标下相同的下一个单词, 并添加一个光标, 类似vscode原生的cmd + daf-VISUAL模式命令, 依据语法分析, 将选择区域向外扩展gh- 等同于将鼠标移至光标所在单词, 方便查看定义以及报错- 当你开启
vim-easymotion后有更多骚操作 ("vim.easymotion": true)<leader><leader> t/T <char>能够向前/向后快速到达可见范围内的某字符(<char>)的位置<leader><leader> w/b向前/向后到达可见范围内任何单词的开头<leader><leader> e/ge向前/向后到达可见范围内任何单词的结尾<leader><leader> k/j向前/向后到达可见范围内任何行的行首- 更多骚操作查看文档 VSCodeVim/#vim-motion
- 快速注释
vim-commentary默认开启VSCode或是INSERT MODE下可以使用cmd + /快速注释光标所在/选中行,NORMAL模式下gcc可以快速注释当前行,gc2j注释以下两行,VISUAL模式gc可快速注释选中行gCC使用块级注释, 注释当前行, 其他类似
vim-sneak光标快速移动s/S <char><char>快速向前/向后移动光标到第一次出现<char><char>字符的位置
- 代码折叠, 建议设置
"vim.foldfix": true(这能修复光标经过折叠代码时自动展开的 bug, 但会带来副作用)[N]zo会递归展开光标下的 N 层折叠,zO会展开光标下所有折叠[N]zc会递归关闭光标下的 N 层折叠,zC会关闭光标下所有折叠zM全部折叠,zR全部展开za/A暂不支持
VSCodeVim中没有Buffer概念,window概念和vim也不太一样- 设置快捷键后
Cmd+h和Cmd+l分别为当前window下打开上一个/下一个editor(Buffer)
- 设置快捷键后
.可以重复上一个命令, 如果你想连续插入很多空行, 可以o <Esc> . . . .来实现ddp交换当前行和其下面一行, 可以理解为剪切本行, 下一行后粘贴, 等价于option+方向键yyp复制当前行到其下面一行, 可以理解为复制本行, 下一行后粘贴, 等价于shift+option+方向键%代码块首尾间切换光标,{}[]()*/#匹配光标当前所在的单词,移动光标到下/上一个匹配单词*是下一个,#是上一个<action>a<object>或<action>i<object>action可以是任何的命令, 如d(删除),y(拷贝),v(可视模式)object可能是w(一个单词),W(一个以空格为分隔的单词),s(一个句子),p(一个段落), 也可以是一个特别的字符"')}]
假设你有一段字符串: (map (+) ("foo")) 而光标键在第一个 o 的位置vi" → 会选择 foova" → 会选择 "foo"vi) → 会选择 "foo"va) → 会选择("foo")v2i) → 会选择 map (+) ("foo")v2a) → 会选择 (map (+) ("foo"))
$光标到行尾,^光标到行首字符,0光标到行首, 前面可以加数字代表行数<>可以调整缩进,VSCodeVIM下选中区域按=会自动调整f<char>光标到本行下一个<char>字符处,t<char>光标到本行第一个<char>字符前,<N>f<char>光标到本行第<N>个<char>字符处,F T为反向<Ctrl-u>/<Ctrl-d>向首/尾翻半页<Ctrl-b>/<Ctrl-f>向首/尾翻一页gg到第一行行首,G到最后一行行首,M移动到屏幕中央非空行首~切换光标所在字符的大小写{}光标移动到段落首尾/<string>?<string>向后/前查找<string>:split纵向切分编辑区,VSCodeVIM下等同于cmd+2/3, 且最多可以有三个v进入VISUAL MODE,V整行进入:c删除选中区域并进入INSERT MODE,d删除选中区域[[向前跳到顶格的第一个{[]向前跳到顶格的第一个}][向后跳到顶格的第一个{]]向后跳到顶格的第一个}[{跳到本代码块(由{}界定)的开头[}跳到本代码块的结尾
m<a-zA-Z>在当前光标处添加 mark,反引号<a-zA-Z>跳转到 mark反引号反引号跳转到跳转前光标的位置'.反引号.跳转到当前文件最后修改的位置
[p]p将寄存器中的字符粘贴到上/下一行, 自动缩进
