ctrl+n仅新建未保存的untitled标签页,不写入磁盘;真正新建文件需用命令面板执行explorer: new file、右键已选文件夹新建,或终端执行code命令。

Ctrl+N 不是新建文件,只是新建未保存的标签页
很多人按 Ctrl+N(macOS 是 Cmd+N)后开始写代码,关掉窗口才发现文件彻底消失——它压根没写入磁盘。这个操作创建的是内存中的 untitled-1,标签页右上角带星号 * 就是未保存的明确标识。
资源管理器里永远不会显示它,因为它不属于任何文件夹。真正“落地”的文件必须有路径、有扩展名、有磁盘位置。
- 适用场景:临时记几行命令、试写一段逻辑、快速打开编辑器再决定存哪
- 常见错误:写完一堆内容,按
Ctrl+S才弹出保存对话框,被迫手动导航找目标目录 - 关键前提:必须已打开工作区(即用
Ctrl+K→O选中一个文件夹),否则没有默认保存路径
右键“新建文件”失效?检查两个硬性条件
右键菜单里“新建文件”变灰或不出现,不是 Bug,是 VSCode 的上下文限制:它只在以下两个条件同时满足时才可用:
- 左侧资源管理器已打开(
Ctrl+Shift+E)且获得焦点 - 鼠标悬停在**已展开的文件夹内部空白处**(比如你点开了
src,然后在src区域的空白位置右键)
如果右键的是某个已有文件、未展开的文件夹图标、或者整个工作区根节点的空白处,“新建文件”项就是灰色不可用的。
支持直接输入完整路径名,例如 api/mock.ts 或 .env.local,回车即创建并打开,不用二次选择目录。
终端命令 code 是最可控的落地方式
集成终端(Ctrl+`)里执行 code 命令,能绕过所有 UI 上下文依赖,一步到位创建并打开真实文件。
前提是已通过命令面板运行过 Shell Command: Install 'code' command in PATH,否则 code 命令不可用。
- Linux/macOS:运行
touch hello.c && code hello.c,先创建空文件再打开 - Windows PowerShell:改用
type nul > hello.c; code hello.c,或更简单——直接code hello.c(VS Code 会自动创建空文件) - 注意:别用
echo "" > hello.c,某些 shell 会在末尾多加一个换行,可能影响后续编译或 lint
文件扩展名不是可选项,是语言识别的开关
VSCode 不靠文件内容判断语言类型,而是严格依赖扩展名。没写 .py 就是纯文本,#include <stdio.h></stdio.h> 不高亮、printf 不提示、Ctrl+Click 跳转头文件也失效。
刚新建的空文件右下角状态栏显示 Plain Text,点击它手动选 C 或 Python,之后保存就会记住该语言模式。
- HTML 快速生成标准结构:输入
!后按Tab,自动补全完整 HTML5 模板 - C/C++ 项目必须装 Microsoft 官方
C/C++扩展,否则连基础语法检查都缺失 - 扩展名拼错(比如
main.cp)会导致整个语言服务链路中断,比语法错误更难排查
ls 或 dir 列出——这是所有后续操作(编译、调试、Git 提交)的前提。











