第 1 章 · VS Code
一句话:微软出的免费代码编辑器,靠扩展变成任何语言的开发环境。 用它还是用别的:写代码、改配置、看日志都用它;大型 Java 或 C# 项目要重型重构时再考虑 JetBrains 系列。 核对版本:VS Code 1.138,2026-10
1.1 安装与版本
Section titled “1.1 安装与版本”Windows:
winget install Microsoft.VisualStudioCodemacOS:
brew install --cask visual-studio-codeLinux(Debian/Ubuntu):按 1.7「Linux 安装(apt 源)」添加官方源后安装:
sudo apt updatesudo apt install codeWindows 和 macOS 用上面的命令装好后,code 命令会自动加入 PATH,但已经打开的终端要关掉重开才能用。
查版本,第一行是版本号,第二行是提交号,向别人报问题时把前两行一起贴上:
code --version在终端里进入项目目录,用 VS Code 打开当前目录。后面的工作流都从这一步开始,比从菜单里找文件夹快:
code .1.2 五分钟概念
Section titled “1.2 五分钟概念”- 工作区(Workspace):你用 VS Code 打开的那个文件夹。搜索、源代码管理、调试都以它为范围;设置可以只对它生效,保存在文件夹里的
.vscode/目录。只打开单个文件而不打开文件夹时,全局搜索和调试配置都用不了。 - 命令面板(Command Palette):一切操作的入口。按
Ctrl+Shift+P输入几个字,菜单里能找到的命令这里都有,还能看到它的快捷键。本章写“命令面板运行某某”,就是按这个键后输入那串英文。 - 侧边栏(Side Bar):左侧五个视图,资源管理器(Explorer)、搜索(Search)、源代码管理(Source Control)、运行和调试(Run and Debug)、扩展(Extensions)。点最左边的图标切换,再点一次收起。图标上出现数字角标,表示有多少个未提交的改动或可更新的扩展。
- 集成终端(Integrated Terminal):编辑器底部的终端,默认在工作区根目录打开。不用切出窗口就能跑命令,报错里的文件路径按住
Ctrl点击可直接跳到对应行。 - 用户设置与工作区设置:设置分两层。用户设置(User Settings)对这台机器上所有项目生效;工作区设置(Workspace Settings)只对当前文件夹生效,两层都写了同一项时以工作区为准。
- 扩展(Extension):语言支持、格式化、Git 增强都靠扩展提供,装哪些见第 2、3 章。
1.3 常用操作与快捷键
Section titled “1.3 常用操作与快捷键”macOS 列里 Cmd 是 ⌘,Option 是 ⌥。Ctrl+K Ctrl+S 这种写法是组合键(chord):先按 Ctrl+K,松开,再按 Ctrl+S。正文(工作流和注意事项)里的快捷键只写 Windows 写法,macOS 对应键看本表。表里的快捷键都是默认值,装了改键扩展或自己改过的,以快捷键表里显示的为准。
| 操作 | Windows | macOS | 说明 |
|---|---|---|---|
| 全局 | |||
| 命令面板 | Ctrl+Shift+P |
Cmd+Shift+P |
记不住快捷键时先按它,输入命令名 |
| 快速打开文件 | Ctrl+P |
Cmd+P |
输入文件名的几个字母即可 |
| 打开设置 | Ctrl+, |
Cmd+, |
图形界面,顶部可切用户和工作区 |
| 快捷键表 | Ctrl+K Ctrl+S |
Cmd+K Cmd+S |
先按前一组再按后一组,可搜索和改键 |
| 显示或隐藏侧边栏 | Ctrl+B |
Cmd+B |
屏幕窄时腾出编辑区 |
| 显示或隐藏终端 | Ctrl+` |
Ctrl+` |
macOS 上也是 Ctrl |
| 问题面板 | Ctrl+Shift+M |
Cmd+Shift+M |
列出所有报错和警告,点一条跳过去 |
| 视图 | |||
| 资源管理器 | Ctrl+Shift+E |
Cmd+Shift+E |
文件树 |
| 搜索 | Ctrl+Shift+F |
Cmd+Shift+F |
在整个工作区里搜索 |
| 源代码管理 | Ctrl+Shift+G |
Ctrl+Shift+G |
看改动、暂存、提交,macOS 上也是 Ctrl |
| 运行和调试 | Ctrl+Shift+D |
Cmd+Shift+D |
变量、调用栈、断点列表 |
| 扩展 | Ctrl+Shift+X |
Cmd+Shift+X |
搜索和安装扩展 |
| 编辑 | |||
| 选中下一个相同的词 | Ctrl+D |
Cmd+D |
每按一次多一个光标,一次改多处 |
| 选中全部相同的词 | Ctrl+Shift+L |
Cmd+Shift+L |
当前文件里所有相同的词同时编辑 |
| 在点击处加光标 | Alt+点击 |
Option+点击 |
在任意位置放多个光标 |
| 上下移动当前行 | Alt+↑ / Alt+↓ |
Option+↑ / Option+↓ |
选中多行时整块移动 |
| 向下复制当前行 | Shift+Alt+↓ |
Shift+Option+↓ |
不用先复制再粘贴 |
| 删除当前行 | Ctrl+Shift+K |
Cmd+Shift+K |
不占用剪贴板 |
| 注释或取消注释 | Ctrl+/ |
Cmd+/ |
按当前语言的注释符号 |
| 格式化整个文件 | Shift+Alt+F |
Shift+Option+F |
需要该语言有格式化器 |
| 重命名符号 | F2 |
F2 |
变量、函数在所有引用处一起改 |
| 折叠当前代码块 | Ctrl+Shift+[ |
Cmd+Option+[ |
展开把 [ 换成 ] |
| 导航 | |||
| 转到定义 | F12 |
F12 |
也可以按住 Ctrl 或 Cmd 点击 |
| 查找所有引用 | Shift+F12 |
Shift+F12 |
改函数前先看谁在调用 |
| 文件内的符号 | Ctrl+Shift+O |
Cmd+Shift+O |
在长文件里跳到某个函数 |
| 工作区里的符号 | Ctrl+T |
Cmd+T |
按名字找整个项目里的类和函数 |
| 转到行 | Ctrl+G |
Ctrl+G |
报错给了行号时用,macOS 上也是 Ctrl |
| 后退到上一个位置 | Alt+← |
Ctrl+- |
跳转到定义之后回到原处 |
| 搜索替换 | |||
| 文件内替换 | Ctrl+H |
Cmd+Option+F |
只改当前文件 |
| 全局替换 | Ctrl+Shift+H |
Cmd+Shift+H |
改整个工作区,先看预览再全部替换 |
| 正则表达式开关 | Alt+R |
Cmd+Option+R |
搜索框获得焦点时按 |
| 窗口 | |||
| 拆分编辑器 | Ctrl+\ |
Cmd+\ |
左右并排看两个文件 |
| 切换到第 1、2、3 组编辑器 | Ctrl+1 / Ctrl+2 / Ctrl+3 |
Cmd+1 / Cmd+2 / Cmd+3 |
拆分之后在左右之间跳 |
| 重新打开刚关闭的编辑器 | Ctrl+Shift+T |
Cmd+Shift+T |
误关标签页时用 |
| Markdown | |||
| Markdown 预览 | Ctrl+Shift+V |
Cmd+Shift+V |
并排预览按 Ctrl+K V 或 Cmd+K V |
| 调试 | |||
| 开始或继续调试 | F5 |
F5 |
第一次会让你选运行环境 |
| 设置或取消断点 | F9 |
F9 |
也可以点行号左边 |
| 单步跳过 | F10 |
F10 |
执行当前行,不进入函数内部 |
| 单步进入 | F11 |
F11 |
进入当前行调用的函数 |
| 停止调试 | Shift+F5 |
Shift+F5 |
结束被调试的进程 |
Linux 与 Windows 相同,例外三个:格式化是 Ctrl+Shift+I,后退是 Ctrl+Alt+-,向下复制行是 Ctrl+Shift+Alt+↓。
1.4 典型工作流
Section titled “1.4 典型工作流”第一次打开一个项目
Section titled “第一次打开一个项目”拿到一个别人的仓库,从打开到跑起来再到找到入口代码:
- 在终端进入项目目录,运行
code .。 - 弹出“是否信任此文件夹中文件的作者”时选“是”;选“否”会进入受限模式(Restricted Mode),调试和大部分扩展不能用。
- 右下角提示“此工作区有扩展推荐”时点“安装”,推荐列表来自项目里的
.vscode/extensions.json。 - Python 项目点状态栏右下角的 Python 版本,选项目的虚拟环境。
- 按
Ctrl+`打开终端,运行项目说明里的启动命令,例如npm run dev。 - 按
Ctrl+Shift+F,搜一个页面上看到的文字或接口路径,找到代码入口。
下断点调试一个脚本
Section titled “下断点调试一个脚本”比在代码里到处加打印语句快,改完不用再删:
- 按
Ctrl+P打开要调试的文件。 - 光标移到想停下的那一行,按
F9,行号左边出现红点。 - 按
F5;第一次会让你选调试器,Python 脚本选 Python Debugger,Node 脚本选 Node.js。要固定启动参数,在“运行和调试”视图点“创建 launch.json 文件”,生成.vscode/launch.json。 - 程序停在断点处,按
F10一行一行往下走,遇到想看的函数按F11进去。 - 看左侧“运行和调试”视图里的变量和调用栈。
- 在底部“调试控制台”(Debug Console)里输入表达式,直接得到当前值。
- 按
Shift+F5停止。
多台机器同步设置
Section titled “多台机器同步设置”公司电脑和家里电脑用同一套设置、快捷键和扩展:
- 按
Ctrl+Shift+P,运行“Settings Sync: Turn On”。 - 勾选要同步的内容:设置、快捷键、扩展、代码片段。
- 选“使用 GitHub 登录”,在浏览器里授权。
- 在另一台机器上做同样的三步,登录同一个账号。
- 等右下角提示同步完成,设置、快捷键和扩展就和第一台一样了。
1.5 配置要点
Section titled “1.5 配置要点”设置文件的位置:
| 范围 | 路径 |
|---|---|
| 用户设置(Windows) | %APPDATA%\Code\User\settings.json |
| 用户设置(macOS) | ~/Library/Application Support/Code/User/settings.json |
| 用户设置(Linux) | ~/.config/Code/User/settings.json |
| 工作区设置 | 项目里的 .vscode/settings.json |
不用记路径:命令面板运行“Preferences: Open User Settings (JSON)“直接打开用户设置文件。
工作区设置文件可以提交进仓库,团队成员打开项目就用同一套缩进、换行和格式化规则。主题、字体这类个人偏好只放用户设置,不要提交。
值得改的项:
| 配置项 | 建议值 | 效果 |
|---|---|---|
files.autoSave |
"afterDelay" |
停止输入一秒后自动保存 |
editor.formatOnSave |
true |
保存时自动格式化 |
editor.defaultFormatter |
扩展 ID,如 "esbenp.prettier-vscode" |
多个格式化器时指定用哪个 |
files.eol |
"\n" |
新建文件用 LF 换行,和 Linux 服务器一致 |
files.trimTrailingWhitespace |
true |
保存时删掉行尾空格 |
editor.tabSize |
2 或 4 |
按项目习惯 |
editor.rulers |
[100] |
第 100 列画一条竖线,提醒行太长 |
editor.minimap.enabled |
false |
关掉右侧缩略图,编辑区更宽 |
terminal.integrated.defaultProfile.windows |
"PowerShell" |
终端默认用 PowerShell(装了 7 就是 7,否则是自带的 5.1) |
workbench.colorTheme |
主题名,如 "Default Dark Modern" |
换配色 |
最小配置,复制到用户设置文件里。文件里原来已有内容时,把这几行合并进最外层的花括号,不要整段覆盖:
{ "files.autoSave": "afterDelay", // 停止输入后自动保存 "editor.formatOnSave": true, // 保存时格式化 "files.eol": "\n", // 新文件用 LF 换行 "files.trimTrailingWhitespace": true, // 保存时删行尾空格 "editor.tabSize": 4, // 缩进 4 个空格 "editor.rulers": [100], // 第 100 列画竖线 "editor.minimap.enabled": false, // 关掉右侧缩略图 "terminal.integrated.defaultProfile.windows": "PowerShell", // 终端默认 PowerShell,装了 7 就用 7 "files.watcherExclude": { "**/node_modules/**": true }, // 不监视依赖目录 "search.exclude": { "**/dist": true } // 搜索时跳过构建产物}1.6 注意事项
Section titled “1.6 注意事项”- Git 显示整个文件都改了,但你只改了一行。 原因:Windows 的 CRLF 换行和仓库里的 LF 混用了。处理:
files.eol设为"\n",再运行git config --global core.autocrlf input(详见第 7 章)。 - PowerShell 终端里运行
npm报“禁止运行脚本”。 原因:Windows 的执行策略默认是 Restricted。处理:运行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser。 - 保存时没有格式化。 原因:没指定默认格式化器,或该语言没装格式化扩展。处理:命令面板运行“Format Document With…”,选一个,再选“Configure Default Formatter”设为默认。
- Python 代码满是红线,说找不到模块,命令行却能跑。 原因:VS Code 选的解释器不是项目的虚拟环境。处理:点状态栏右下角的 Python 版本,换成项目的
.venv。 - 打开大仓库后风扇狂转,搜索很慢。 原因:VS Code 在监视和搜索
node_modules、构建产物这些大目录。处理:在files.watcherExclude和search.exclude里加上这些目录。 - 终端里提示
code命令不存在。 原因:macOS 没装 shell 命令;Windows 安装时没勾选加入 PATH。处理:macOS 在命令面板运行“Shell Command: Install ‘code’ command in PATH”;Windows 重新安装并勾选“添加到 PATH”。 - 按了快捷键没反应。 原因:被输入法或其他软件占用,或被扩展改了绑定。处理:按
Ctrl+K Ctrl+S搜这个键看它绑在哪;输入法设置里关掉冲突的热键。 - 改了设置不生效。 原因:工作区设置覆盖了用户设置。处理:打开设置界面,顶部切到“工作区”标签,看同一项是否另有值。
1.7 深入阅读
Section titled “1.7 深入阅读”- VS Code 官方文档:从安装到调试的完整文档,先看 Get Started。
- 快捷键速查表(Windows PDF):官方一页纸,打印贴在旁边;macOS 版把 windows 换成 macos。
- Tips and Tricks:官方整理的高效用法,多光标、Emmet、代码片段都在这里。
- 调试:launch.json 的每个字段和断点的各种玩法。
- 用户与工作区设置:设置的层级和全部可配置项。
- Linux 安装(apt 源):Debian/Ubuntu、Fedora 等发行版的官方源配置,先按它加源再 apt install。