ctrl+n仅新建未保存的untitled标签页,不写入磁盘;真正新建文件需右键已展开文件夹空白处选“新建文件”,或绑定explorer.newfile快捷键,或终端执行code命令。

Ctrl+N 不是新建文件,是新建未保存的标签页
按 Ctrl+N(Windows/Linux)或 Cmd+N(macOS)只生成一个内存中的 untitled-1 标签页,右上角带星号 * 表示未保存。它不会写入磁盘,也不会出现在资源管理器里。
常见错误现象:Ctrl+N → 写几行代码 → Ctrl+S → 弹出保存对话框却找不到目标目录 → 手动翻半天才存进去。
根本原因:VSCode 没有默认保存路径,除非你已通过 Ctrl+K O 打开过工作区(即一个文件夹)。没打开工作区时,Ctrl+N 完全脱离项目上下文。
适用场景仅限临时记笔记、试写逻辑、快速打开编辑器再决定存哪;绝不能当作“在 src/utils 下建新文件”的操作。
真正落地的新建方式:右键 + 当前文件夹上下文
这是最稳定、原生、无需配置的方案,但依赖两个硬性条件:
- 资源管理器已打开(
Ctrl+Shift+E) - 鼠标悬停在**已展开的空文件夹内部空白处**(不是根节点、不是已有文件上、也不是未展开的折叠文件夹)
操作流程:右键 → “新建文件” → 直接输入完整名称(如 api/mock.ts 或 .env.local)→ 回车。
容易踩的坑:
- 在空工作区(刚启动 VSCode 未打开任何文件夹)右键,“新建文件”选项灰色不可用
- 点了某个 .js 文件右键,菜单里只有“重命名”“删除”,没有“新建文件”
- 扩展冲突:某些文件管理插件(如 Project Manager)会覆盖右键行为,禁用后即可恢复
命令面板 + Explorer: New File 是快捷键替代方案
VSCode 原生命令 explorer.newFile 才是真正“在当前焦点文件夹下创建并打开新文件”的行为,但它默认没绑定快捷键。
手动绑定步骤:
- 按
Ctrl+K Ctrl+S打开键盘快捷键设置 - 搜索
explorer.newFile,双击该条目 - 按下你想用的组合键(例如
Ctrl+Alt+N),回车确认
注意前提:
- 必须先聚焦资源管理器(
Ctrl+Shift+E后点一下空白处或某个文件夹) - 键盘焦点需落在某个子文件夹内,不能停留在根节点或未选中状态
- 若当前没选中任何文件夹,它会退回到工作区根目录
这个命令支持输入相对路径,比如当前在 src/ 下,输入 hooks/useAuth.ts,会自动创建 hooks/ 子目录并生成文件。
终端 code xxx.js 是最快的一次性操作
如果你已在集成终端中,且已 cd 到目标目录(如 cd src/lib),直接运行:
code utils.ts
VSCode 会立即创建空文件并打开——比打开命令面板、输命令、再输路径少 5–7 次按键。
注意事项:
-
code命令需提前启用:通过命令面板运行Shell Command: Install 'code' command in PATH - Windows PowerShell 用户不能用
touch,可直接code utils.ts(文件不存在时 VSCode 自动创建) - Linux/macOS 下也可搭配
touch使用:touch index.html && code index.html,但纯code更简洁
这个方法不依赖资源管理器是否聚焦、不关心鼠标位置、也不受右键菜单限制,唯一要求是你在正确的路径下执行。
真正容易被忽略的是:所有“新建文件”操作都不触发语言模式自动初始化——哪怕你输入 main.c,首次打开仍是 Plain Text;必须手动点击右下角状态栏切换为 C,否则 C/C++ 扩展不会加载语法检查和补全。这点在批量新建多个不同后缀文件时尤其容易漏掉。











