双击选项卡栏仅创建内存中untitled-1,不写入磁盘、不显示在资源管理器;真正新建文件需右键资源管理器空白处、命令面板执行Explorer: New File或终端code命令。

双击选项卡栏空白处不会新建文件,只会新建未保存的 untitled 标签页
VS Code 的选项卡栏(即顶部已打开文件的标签区域)双击行为是被明确设计为创建内存中的 untitled-1,不是文件系统操作。它不写入磁盘、不出现在资源管理器、关掉窗口就彻底丢失。这个动作和“新建文件”完全无关,只是快速开一个编辑器缓冲区。
常见错误现象:双击后写了几行 Python,按 Ctrl+S 弹出保存对话框,却发现默认路径是系统临时目录或上次保存位置,根本不在当前项目里——因为 VS Code 根本不知道你“想存到哪”,它连工作区都没关联上。
- 必须先通过
File > Open Folder打开一个实际文件夹,否则双击/快捷键都无上下文可依 - 该行为无法通过设置关闭或改造成“自动建 .py 文件”,它是编辑器底层逻辑,不是配置项
- 如果你看到别人双击生成了
.py文件,那一定是装了插件(比如Advanced New File)并重绑了双击事件,原生 VS Code 不支持
真正能“在当前文件夹新建带扩展名文件”的操作只有三种
所有可靠落地方式都依赖资源管理器焦点和路径上下文,而不是选项卡栏。
-
右键资源管理器空白处:确保已展开某个文件夹(如
src/),鼠标悬停在其内部空白区域 → 右键 → “新建文件” → 输入utils.py回车。这是最直观、无需插件的方式 -
命令面板调用
Explorer: New File:按Ctrl+Shift+P→ 输入Explorer: New File→ 回车 → 直接输入相对路径,如api/handler.ts。若当前选中src/,它会自动建在src/api/handler.ts -
终端执行
code xxx.py:在集成终端(Ctrl+`)中cd到目标目录后运行code main.py。文件不存在时 VS Code 会自动创建并打开,且路径确定、无弹窗
files.defaultLanguage 设置对双击无效,但影响新文件的语言模式
设置 files.defaultLanguage 为 python 后,所有新打开的空文件(包括双击产生的 untitled-1)都会默认启用 Python 语法高亮和智能提示,但它不会改变文件名、不会加 .py 后缀、也不会影响保存行为。
也就是说:双击产生 untitled-1 → 状态栏右下角显示 Python → 你按 Ctrl+S → 还得手动输 app.py 才算落地。
- 这个设置只在“新建空文件后立刻编辑”场景有用,比如临时写脚本片段
- 如果保存时忘了输扩展名,VS Code 会以纯文本保存,后续再改名也不会自动切换语言模式
- 它和
files.associations配合可让无后缀文件也识别为 Python,但依然不解决“双击即建真实文件”的问题
想实现“双击空白处新建 .py 文件”,只能靠插件 + 自定义快捷键
原生 VS Code 没有暴露选项卡栏双击事件的 API,所以任何“双击即建文件”的方案,本质都是把双击映射到其他命令,并覆盖默认行为。
- 推荐插件:
Advanced New File,安装后默认绑定Ctrl+Alt+N(Windows/Linux)或Cmd+Alt+N(macOS),输入models/user.py回车即可递归建目录并创建文件 - 不能直接双击选项卡栏,但你可以把焦点切到资源管理器(
Ctrl+Shift+E),然后在空白处Alt+Click(Win/Linux)唤出菜单选择“新建文件” - 自定义快捷键更可控:打开
Preferences: Open Keyboard Shortcuts (JSON),添加一条规则,将explorer.newFile绑定到你喜欢的组合键,前提是资源管理器已聚焦且有文件夹被选中
最易被忽略的一点:所有路径类操作(包括插件输入路径)都要求 VS Code 是以普通用户权限启动的。Linux/macOS 下若曾用 sudo code 打开过,插件可能静默失效,重启时去掉 sudo 即可。


















