作为一个多年的VIMer,在VSCode出来前,我义无反顾的徜徉在vim的海洋中,然而不小心试过部分VSCode的功能后,也是颇为口水加赞叹。那么作为一个已经经历过陡峭的编辑器学习曲线的人,如何更好的用好VSCode呢?本文希望探索和总结一下。
PS:本文快捷键是MacOS版本下的按键,如果你是Windows也不必慌,可自行查找对应按键。
前言
虽然Vim在现有很多版本可以开箱即用了,比如之前我在基于Neovim的下一代IDE提到过,它避免了大量的配置,上手也比较快,但相比于VSCode在易用性上还是有所不如。个人觉得VSCode的插件系统+扩展商店是神级支柱,一个让其更稳定,一个让其更丰富。本文会假定你有一些vim的经验,也折腾过VSCode,我们看在这种情况下,如何更好地用VSCode。看完或许对你的知识有查漏补缺的作用:)
终端Code命令
安装好vscode后,如果你终端还没有code命令,可以按F1然后输入code,找到在PATH中安装Code命令
。
它的最常见用法是code .
自不必说。还有如下命令可以稍作了解:
|
|
基本快捷键
有一些你知道会事半功倍的快捷键,我显然不会也不想去搬上各种全面的快捷键定义,我也记不住那么多,那么我们只需要对如下几个作一些了解,需要时也可以快速回顾。
- 命令面板:Cmd+Shift+P 或 F1。 你一定得知道这个啊。
- 快捷键表:命令面板中输入
keyboard shortcuts
。 到这里查其它你想学的快捷键,我不建议你记太多。然后很重要的一点,如果你发现一些快捷键不可用,可以在这里看一下是否被其它占据了。 - 左侧边栏显示/隐藏:Cmd+b。别再去左边点击关闭了。我在写此文章时,因为开启了Markdown,这个快捷键就被Markdown扩展占据了(通过上面查到)。
- 控制台终端显示/隐藏。 ctrl + ~, 也可以Cmd+J。或许Cmd+J更好按点,我一直觉得Ctrl+~挺反人类的:)
- Tab选中:ctrl+1/2/3。快速跳到对应的文件上去。Ctrl+Tab则是显示文件列表。
- 将某个已打开文件移动到单独窗口: ctrl + cmd + 右。有时候抄代码特别好用:)
- 横向编辑器:Cmd+\,或按着Cmd再打开文件。
- 纵向编辑器:Cmd+Option+0。有些人显示器竖着,或许得学会这一招?
- 网格布局:Cmd+Shift+P后,输入Grid。
- 禅模式(Toggle Zen Mode),隐藏其它面板,命令面板中输入Zen查看。想进入专注编码模式,不妨试试。效果好记得点赞,不对,记得绑定称手的快捷键。
基本编辑快捷键
鼠标
虽然我们提倡用键盘操作,但VSCode有几个很不错的鼠标小常识你可以知道下。或许你像我一样胡乱试的时候也意外发现了。
- 单击,移动光标到位置
- 双击,选中光标下的单词
- 三击,选中这一行
- 四击,选中整个文档
- 选中后拖动,将一段文本移到某个位置(注意虚线)
移动
作为一个VIMer,相信你自然会安装并打开VSCode的vim扩展,所以基本的移动你不必再学。下面几个你也不必学,只需要一笑了之,你或许看到就能对应上vim的肌肉记忆了。
- 按Option接左右,单词级别跳转。
- 按Cmd接左右,行首/尾。
- 按Cmd接上下,首行/末行。
- 代码块间跳转(花括号间), Cmd+Shift+\
多光标能力
这是VSCode中很赞的一个功能,入门和登堂入室可能就差这一步了:)我们能顺利操作多光标,再配合VIM快捷键,如ciw替换某个单词等,批量修改,指哪打哪是很轻松的事。
- 光标撤回,跳到之前光标的地方:Cmd+U。想不到刚才从哪过来的了?这个能唤醒你的记忆。
- 多光标操作:
- 定点打桩:这名字我瞎取的,你看像不像。你按住Option再点击光标,会在对应放置光标,依此可多处点击,然后可以一次输入,多个点同时修改简直太爽了,这比sed或%s还是好多了。
- 全局改写:Cmd+Shift+L。根据当前光标单词,选中本文档中所有单词并添加光标,你可以一次性修改它们。
- 精确指向:Cmd+D, 根据被选中内容创建多光标,可多按几次,每次往下找一个匹配的选中内容。如果你多选了也不要慌,上面说过,Cmd+U可以帮你撤回光标。当选中后,按A或c(vim指令)去改变刚才这一堆内容吧。
- 列模式:这名字也是瞎取的,和vim的列模式有点像。Cmd+Option+上下键添加在上下行添加多光标,然后你可以使用0$等跳到各个地方去,添加各种字符。
其它操作
有几个不错的小技巧你可一试,特别是在进行代码重构时,比如下面的拖动,以及快速的查找替换。
- 拖拽移动文本。试着把选中的文本拉来拉去?比如提取出一个函数?当然你会重构手法可能更快点。
- 替换选中字符。在对应文本上按Cmd+Option+F,这会让你在进行查找替换时快一些。
- 多文件搜索替换:Cmd+Shift+F。 同时支持设置包含的文件或排除的文件。这个功能一直在vim/nvim中找不到便捷的替代,他们都没VSCode中这般直观,还在持续寻找中,你有方案请一定告知我。
代码能力
上面是一些文本的编辑,VSCode作为被众多程序员采用的编辑器,自然写代码也是一好手,这里提供一些简要帮助。
符号跳转
- 文件里类定义,符号等列表,方便跳转。Cmd+Shift+O。有时候想看一个文件大略时,也可以这么来一下。
- 跨多文件搜索符号: Cmd + T。单文件搜索有时不够,文本搜索有时不是你想要的,符号表的搜索如函数名等,用它来试试?
- 在定义和实现和引用间跳转,看代码这可能是必须的了
- 跳定义:F12 或vim中的gd
- 跳实现:Cmd+F12
- 跳引用:Shift + F12。如果想在左边栏更清楚展示:Shift+Option+F12。
代码补全
在VSCode中一些代码补全经常是被一些关键字引出来,比如方法等在.
之后会出现,那么当我们错过后,时常还要把.
删掉再来一次,这显得有点傻。还有不少时候,我们对补全都是有要求的。
- 再次显示补全建议:Ctrl+空格。如果你不生效,很可能是像我一样与系统的输入法切换冲突了。你可以改掉其中一个。
- 显示补全参数: Cmd+Shift+空格。有时刚看了函数的签名又忘记了,按一下这个快捷键求它再给你一次机会。
- 自动补全设置,有时候我们希望注释也能帮我补全一下,你得检查一下你的settings.json内容啦。
|
|
- 自动提示修复: cmd+. 你也可以点那一行左边的黄色灯泡。在安装Copilot后还会有更多惊喜,不妨一试。
折叠与展开
有些人喜欢用折叠和展开,我倒是用得不太多,但这几个按键记起来也比较简单,可以收下。
- 选中部分:Option+Cmd+
[
或]
。 这样可以将某个函数随时折叠或展开。 - 全部折叠:Cmd+K后Cmd+0。哈,感觉清爽多了。
- 全部展开:Cmd+K后Cmd+J。呃,又一大坨出来了。
- 除本函数外,其它折叠: Cmd+K后Cmd+1
- 只显示第二层级,函数内分支不显示:Cmd+K后Cmd+2
- 还有Cmd+[3-9]。自行探索吧,我也不知道呢?
重构
其实相比于一些专业的商业化IDE,VSCode的重构功能还是比较弱鸡的,我印象比较深刻的是某J家的工具,有大量你还不会用的技法。既然只有这么点,就赶紧学起来吧。
- 重命名: F2。这是必备的手段了,给变量,函数啥改名,单测都给你一并修改了,如果你还在用查找替换,我只能说,我太佩服你了。
- 提取函数: 选中代码段,点击黄色灯泡(不是所有语言都支持)。只能说勉强能用吧,智能程度堪忧。
我也尝试了用Copliot重构代码(Copilot Chat),发现在VSCode中也有点蠢啊,为啥呢?你们一般是如何重构代码的?
插件推荐
有很多好用的插件,因人而异去使用就好了。比如号为神器的Remote-SSH插件,还有GitLens等,我看有几个可能知道的人不太多,那还是值得说一下。
Project Manager
方便多项目切换。收藏后,以后切换一键。请你不要再不停的找源码目录再去打开你天天开发的工程了,人家已经帮你省了这一步了。
Local History
我们有时代码改着改着,发现之前删除的又想要回来了,咋办?这个Local History只要曾经Save过,就能找回来。它不要求你文件提交到git等,所以可能某些时候能救急一下。误删了啥,你也不要太慌张。
后记
如果阅读代码,这块工作我更喜欢基于tmux+nvim等来进行,大量的工程打开状态的维护是VSCode的一个噩梦,但是tmux+nvim可以做得很棒。然而写代码还是喜欢VSCode,因为它的单测Debug更直接,它配合Copliot也更顺畅,还有它的大量查找替换的呈现更自然好用,甚至有时候它还是更稳定的选择。
同时,我也期待未来有时间,把nvim磨得更锋利一些,所向披靡,但目前各司其职也未尝不可。
我是个爱折腾技术的工程师,也乐于分享。欢迎点赞、关注、分享,更欢迎一起探讨技术问题,共同学习,共同进步。为了获得更及时的文章推送,欢迎关注我的公众号。