🧙 VS Code 用了 5 年,这 15 个功能我才发现——老程序员的自我检讨报告
阅读时间:约 15 分钟
适合人群:每天开着 VS Code 但只会 Ctrl+S 的人、装了 200 个插件但只用 3 个的人、以及鼠标比键盘用得多的程序员
作者状态:坐在工位上,看着隔壁实习生用 VS Code 编辑器流畅地重构代码,而我还在右键菜单找"重命名",感到深深的自我怀疑
前言:被实习生震惊的那一天
那是一个普通的下午。
我在旁边看实习生改一段代码,他手指飞速移动,按了几个我看不清的快捷键,然后——整个文件里所有的变量名,同时改掉了。
我以为他在用什么神秘插件。
他说:"这是 VS Code 自带的功能,F2 重命名符号。"
我用了五年 VS Code,不知道有 F2。
那一刻,我决定好好研究一下这个我以为自己"已经很熟"的编辑器。
以下是我的自我检讨报告,也是你可能错过了 N 年的 VS Code 神技。
一、F2:重命名符号,改一处全改——不是 Ctrl+H
大多数人改变量名,第一反应是 Ctrl+H 全局替换。
然后愉快地把注释里的、字符串里的、完全不相关的同名词也一起替换掉了。
正确姿势:光标放到变量/函数名上,按 F2。
VS Code 会分析语言的语义,只替换真正相关的引用,注释和字符串里的不动。跨文件的引用也一并更新。
💡 老鸟提醒:对于支持 Language Server(TypeScript、Python、Go、Java 等)的项目效果最好。原生 JS 没有类型信息,有时会漏。上 TypeScript 是对的,别再拖了。
二、Ctrl+D:多光标选中,批量编辑的正确方式
场景:你需要把文件里多个地方的 console.log 同时改掉。
新手做法:Ctrl+H 替换,或者一个一个手改。
老鸟做法:
- 选中一个
console.log - 按
Ctrl+D,选中下一个相同的词 - 继续按
Ctrl+D,继续选中…… - 所有目标都选中后,直接打字——所有位置同时编辑
跳过某一个?按 Ctrl+K,再按 Ctrl+D 跳到下一个。
💡 进阶用法:
Ctrl+Shift+L一次选中文件里所有相同的词,直接全部多光标。不过要小心,别把不想改的也选进去了。
三、Ctrl+P:快速跳转文件,扔掉文件树
很多人打开文件,是在左侧文件树里一层层点进去找。
这在文件只有 10 个的时候没问题。项目大了就是折磨。
按 Ctrl+P,直接输文件名关键词,模糊匹配,回车打开。
Ctrl+P → 输入 "usrauth" → 找到 src/modules/user/auth.service.ts
还有更多玩法:
| 输入 | 效果 |
|---|---|
Ctrl+P → 直接输文件名 | 跳转到文件 |
Ctrl+P → 输入 @ | 跳转到当前文件的某个符号(函数/变量) |
Ctrl+P → 输入 :行号 | 跳转到指定行 |
Ctrl+Shift+P | 打开命令面板,运行任何 VS Code 命令 |
Ctrl+G | 直接跳转到行号 |
💡
Ctrl+Shift+P是真正的万能钥匙。忘了快捷键?打命令面板搜。找不到设置在哪?打命令面板搜。不知道某个功能叫什么?打命令面板搜。它是 VS Code 的大脑。
四、多光标的另一种方式:Alt+Click
上面讲了 Ctrl+D 选相同词,但有时你想在任意多个位置同时打字,怎么办?
按住 Alt,鼠标点击任意位置,就在那里加一个光标。
想在 10 行的行首同时加个东西?按住 Alt+Shift,鼠标从第一行拖到第十行,竖向列选择,一次搞定。
原来:
const a = 1
const b = 2
const c = 3
Alt+Shift 竖向选中行首,输入 "export " → 瞬间变成:
export const a = 1
export const b = 2
export const c = 3
这个操作我第一次见到,觉得自己白活了。
五、Ctrl+/ 和 Shift+Alt+A:注释快捷键
注释代码,你是不是还在手动输入 //?
Ctrl+/:行注释(选中多行也可以)Shift+Alt+A:块注释(/* */)
选中一段代码,Ctrl+/,瞬间注释。再按一次,取消注释。就这么简单,但很多人就是不知道。
💡 VS Code 会根据当前文件语言自动选择注释符号,Python 用
#,HTML 用<!-- -->,你不需要记语法。
六、Ctrl+Shift+K vs Ctrl+X:删行的两种姿势
删掉当前行:
Ctrl+Shift+K:直接删除,不进剪贴板Ctrl+X(不选内容):剪切整行,进剪贴板,可以粘贴到别处
很多人删行用 Ctrl+X,然后剪贴板里全是废代码,下次 Ctrl+V 贴出来一坨,一脸懵。
养成习惯:删了不用的就 Ctrl+Shift+K,要移动的才 Ctrl+X。
七、Alt+↑/↓:移动代码行,不用剪切粘贴
想把某一行(或选中的多行)向上/向下移动?
- 新手:剪切 → 移动光标 → 粘贴(三步,容易粘错位置)
- 老鸟:
Alt+↑或Alt+↓,直接把行拖上去或拖下来
配合 Shift+Alt+↑/↓ 可以复制整行到上方或下方,不用 Ctrl+C 再 Ctrl+V。
八、内置终端:别再切窗口了
很多人写代码开着 VS Code,跑命令开着另一个终端窗口,来回 Alt+Tab 切换。
按 Ctrl+反引号(\)`,直接在 VS Code 里打开集成终端。
可以同时开多个终端,分屏,切换:
Ctrl+` → 打开/关闭终端
Ctrl+Shift+` → 新建一个终端
终端里可以跑任何命令,路径自动在项目根目录,不用 cd 来 cd 去。
💡 进阶:在终端面板右上角可以把终端改成分屏布局,代码和命令同屏,不用切换,开发体验直接上一个台阶。
九、时间线(Timeline):本地版"后悔药",不依赖 Git
场景:你改了一段代码,没 commit,然后发现改错了,想回到之前的版本。
没有 Git 记录,没有备份,怎么办?
VS Code 有内置的本地历史记录。
在左侧文件树底部找到"时间线(TIMELINE)"面板,点开当前文件,能看到每次保存的快照,点一下就能对比差异,右键可以恢复到那个版本。
这功能救过我的命不止一次。
⚠️ 注意:本地历史记录保存在本机,换电脑或重装系统会丢。重要代码还是要 commit,时间线只是应急后悔药。
十、代码折叠:让长文件不再让人崩溃
一个几百行的文件,找函数找得眼花?
Ctrl+Shift+[:折叠当前代码块Ctrl+Shift+]:展开当前代码块Ctrl+K, Ctrl+0:折叠所有代码块Ctrl+K, Ctrl+J:展开所有代码块
折叠之后,只看函数签名,结构一目了然,想看哪个展开哪个。
💡 进阶:在代码里写
// #region和// #endregion,可以自定义折叠区域,给代码分段,超级好用。
十一、Ctrl+Shift+F:全局搜索,但你可能没用对
全局搜索大家都会,但有几个细节很多人忽略了:
Ctrl+Shift+F → 打开全局搜索
搜索框旁边三个小图标,从左到右:
- Aa:区分大小写
- \b单词\b:全词匹配(搜
user不会匹配username) .*:正则表达式模式
下面还有"包含的文件"和"排除的文件"——可以指定只搜 src/**/*.ts,排除 node_modules(虽然默认已排除,但自定义 dist/** 之类的要手动加)。
💡 用正则搜索的技巧:搜
console\.(log|warn|error)可以一次找出所有调试用的日志语句,提交前统一清理,专业感 +50。
十二、代码片段(Snippets):自定义你自己的快捷模板
你是不是每次都要手写 try { } catch (error) { console.error(error) }?
每次都要敲 useEffect(() => { return () => {} }, []) ?
一次性做成代码片段,以后输入缩写 + Tab 直接展开。
打开命令面板 Ctrl+Shift+P,搜索"Configure User Snippets",选语言,然后写:
{
"Try Catch Block": {
"prefix": "tc",
"body": [
"try {",
" $1",
"} catch (error) {",
" console.error('$2', error)",
"}"
],
"description": "Try catch block"
}
}
保存后,在 JS/TS 文件里输入 tc + Tab,直接展开,$1、$2 是光标跳转位置。
这是真正的懒人改造,能节省的时间日积月累,非常可观。
十三、Peek Definition vs Go to Definition
大多数人知道 F12 是"跳转到定义",但很多人不知道还有 Peek Definition。
F12:直接跳转到定义所在文件(当前文件消失)Alt+F12:就地预览定义,弹出一个小窗口在当前位置显示定义代码,不跳走
看一个函数实现,不想离开当前上下文?Alt+F12 完美。
💡 类似的还有
Shift+F12(查找所有引用),也可以 Peek 方式在当前页内显示,不用满世界跳来跳去。
十四、Zen Mode:关掉所有干扰,只剩代码
有时候你需要专注写代码,不想被任何 UI 元素打扰。
Ctrl+K Z(先按 Ctrl+K,放开,再按 Z)进入 Zen Mode(禅模式):
- 隐藏侧边栏
- 隐藏状态栏
- 隐藏标签页
- 编辑器全屏居中
- 世界安静了
按 Escape 两次退出。
💡 这功能适合写长函数、理复杂逻辑的时候用。当然,如果你工位旁边有个叫"产品经理"的生物,Zen Mode 也救不了你。
十五、.vscode 文件夹:把配置提交到项目里
最后说一个被严重低估的功能。
在项目根目录建一个 .vscode 文件夹,里面可以放:
settings.json:项目级编辑器配置
{
"editor.tabSize": 2,
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
extensions.json:推荐安装的插件列表
{
"recommendations": [
"esbenp.prettier-vscode",
"dbaeumer.vscode-eslint",
"eamodio.gitlens"
]
}
launch.json:调试配置
把 .vscode 提交到 Git 里,所有人 clone 项目后,VS Code 会自动提示安装推荐插件,共享同一套代码风格配置。
再也不用跟新同事说"哦对,你需要装个 Prettier,然后改一下 tabSize……"
💡 当然,个人习惯性的配置(比如字体大小、主题颜色)别放进来,那些放用户级别的
settings.json里。项目级的只放跟项目一致性有关的设置。
总结速查表
| 快捷键 | 功能 | 告别的坏习惯 |
|---|---|---|
F2 | 重命名符号 | 用 Ctrl+H 无差别替换 |
Ctrl+D | 选中下一个相同词(多光标) | 一个一个手改 |
Ctrl+P | 快速跳转文件 | 在文件树里翻来翻去 |
Alt+Click | 任意位置添加光标 | 复制粘贴 N 次 |
Ctrl+/ | 行注释 | 手打 // |
Ctrl+Shift+K | 删除当前行 | 用 Ctrl+X 污染剪贴板 |
Alt+↑/↓ | 移动行 | 剪切粘贴移行 |
Ctrl+反引号 | 打开集成终端 | 来回切窗口 |
| Timeline | 本地文件历史 | 文件改崩了就哭 |
Ctrl+K Z | Zen 模式 | 被 UI 分散注意力 |
Alt+F12 | 就地预览定义 | 跳来跳去迷失方向 |
.vscode/ | 项目共享配置 | 口口相传配置方式 |
结语:工具是第二大脑,得好好用
VS Code 之所以能在短短几年把 Sublime Text、Atom 这些前辈踩在脚下,不是因为它漂亮,是因为它确实强大。
但强大的工具,用不好就只是个记事本。
这 15 个功能,每一个都是真正节省时间的。今天学一个,用到熟,明天再学下一个。不用一口吃成胖子,但也别再用了五年只会 Ctrl+S。
如果这篇文章帮到了你,点个赞再走。 我会继续出系列,下一篇打算聊聊那些"装了但从不用"的 VS Code 插件——我帮你筛出 10 个真正值得装的,剩下那 190 个,卸了吧。
📌 系列往期
👉 《老程序员的 Git 避坑手册:这10个命令,我当年要是早知道就好了》
👉 《老程序员含泪整理:这12个Linux命令,新手用了都说早知道就好了》📌 下期预告
《那些"装了等于没装"的 VS Code 插件:我帮你从200个里筛出真正有用的10个》
本文基于 VS Code 1.95+ 版本,部分快捷键在 macOS 上需要把 Ctrl 换成 Cmd。Windows 用户照单全收即可。
另外:不要问我为什么不用 JetBrains 全家桶——因为穷。