Ctrl+N只是新建内存中的untitled标签页,不落地;真正新建文件需用Explorer: New File命令、右键已选文件夹或终端code命令。

Ctrl+N 不是“新建文件”,只是新建一个未保存的临时标签页;真正落地到项目目录的新建操作,必须明确指定路径。
Ctrl+N 为什么存不了文件?
按下 Ctrl+N(macOS 是 Cmd+N)后出现的 Untitled-1 标签页完全在内存中,不关联任何磁盘位置。它没有默认保存路径,Ctrl+S 时必然弹出“另存为”对话框,且默认位置不可控——尤其当你没打开工作区(即没用 Ctrl+K → O 选文件夹)时,系统会跳到用户主目录或上次保存位置,极易存错地方。
常见错误现象:Ctrl+N → 写完代码 → Ctrl+S → 在弹窗里翻半天才找到 src/utils → 一不小心点错覆盖了别的文件。
- 这个操作适合临时记笔记、试写几行、快速打开编辑器再决定存哪
- 它不适合“在当前组件目录下加一个
useAuth.ts”这类有明确路径意图的操作 - 关闭窗口前没手动保存,内容彻底丢失,且无恢复入口
真正落地:用 Explorer: New File 命令
VSCode 原生最稳的新建方式,能直接把文件建在你当前选中的文件夹下,路径清晰、不跳转、不手动导航。
操作步骤:
- 确保资源管理器已打开(
Ctrl+Shift+E),并点击目标文件夹(比如src/api)使其高亮 - 按
Ctrl+Shift+P唤出命令面板,输入Explorer: New File,回车 - 直接输入相对路径名,例如
mock/users.ts或.env.local,回车即创建并打开
如果当前没选中任何文件夹,它会默认建在工作区根目录;输入路径时支持斜杠分隔,无需提前创建中间目录(VSCode 会自动补全 mock/ 文件夹)。
右键“新建文件”失效的三个原因
右键菜单里“新建文件”变灰或不出现,不是 Bug,而是 VSCode 的上下文限制严格:
- 资源管理器必须处于打开状态(
Ctrl+Shift+E) - 鼠标必须悬停在**已展开的文件夹内部空白处**,或悬停在**空文件夹图标上**——悬停在文件上、悬停在未展开的折叠文件夹上、或悬停在根节点空白处,都会禁用该选项
- 工作区必须已加载(即左侧能看到文件树),纯空窗口不支持右键新建
所以别反复右键试探,先点开目标文件夹再操作,成功率接近 100%。
终端里 code xxx.js 和 touch 的区别
在集成终端(Ctrl+`)中执行 code hello.js,VSCode 会检查文件是否存在:不存在就新建空文件并打开;存在则直接打开。它不依赖当前目录是否在工作区内,但要求 code 命令已加入 PATH(首次需通过命令面板运行 Shell Command: Install 'code' command in PATH)。
touch hello.js && code hello.js 多此一举——code 自带创建逻辑,Linux/macOS 可直接 code hello.js;Windows PowerShell 用户建议直接 code hello.js,避免 touch 不可用或换行符污染。
注意:code 创建的文件默认语言模式是 Plain Text,首次保存后才会根据扩展名(如 .js)自动切换,若想立刻获得语法提示,保存前可点击右下角语言标识手动选一次。
最容易被忽略的一点:所有新建方式都依赖你是否打开了工作区。没用 Ctrl+K → O 打开一个文件夹,VSCode 就没有“当前项目”的概念,任何路径操作都会失去上下文锚点。


















