sublime 新建的 untitled 文件本质是内存缓冲区,不绑定路径、不落盘、不触发插件监听,关掉即丢;可通过设置 default_new_file_content 实现模板初始化,仅限 st4126+ 版本且须写入用户设置。

Sublime 没有真正意义上的“临时草稿”模式,所有未命名文件(untitled:)默认就是临时的——不保存、不落盘、关掉就丢,但你可以安全地写、试、删,完全不影响项目。
为什么 Ctrl + N 新建的文件不是“草稿”,而是真·临时区?
Sublime 的 untitled: 文件本质是内存缓冲区,不绑定路径、不触发 save_on_focus_lost、不被任何插件监听(比如 GitGutter 不显示状态,AutoSave 插件直接跳过)。它连文件系统都还没接触,自然不存在“自动保存失败”或“只读路径报错”的问题。
常见误解是以为要靠插件造个“草稿箱”,其实原生机制已足够轻量:新建 → 写 → 关闭 → 弹窗问“是否保存?” → 点“否”即清空,全程无残留。
untitled: 文件不能用代码片段?先检查 scope 和触发位置
很多自定义 snippet(比如 myhtml5 或 state_machine)在 untitled: 里按 Tab 没反应,不是 snippet 坏了,而是作用域没匹配上:
-
<scope>text.html.basic</scope>只在已识别为 HTML 的文件中生效;untitled:默认是text.plain,不满足条件 -
<tabtrigger>html:5</tabtrigger>在 Emmet 中依赖当前语法高亮类型,而untitled:无语法,Emmet 不激活 - 解决办法:新建后手动设语法 ——
Ctrl + Shift + P→ 输入Set Syntax: HTML→ 回车,再试html:5或myhtml5
想让 untitled: 启动就带模板?改 User Settings 里的 default_new_file_content
这个配置项能让你每次按 Ctrl + N 都自动填入预设内容(比如注释头、基础结构),且不影响已命名文件。它不依赖插件,纯原生,写法简单:
打开 Preferences → Settings – User,在 JSON 的 {} 里加一行:
"default_new_file_content": "/*\n * @author: \n * @date: ${1:$(date +%Y-%m-%d)}\n */\n\n$2"
说明:
-
${1:...}是占位符,光标会停在日期处;$2是第二个跳转位,方便你接着写 - 注意:该字段只在 Sublime Text 4126+ 版本支持;3.x 用户需用插件(如
DefaultFile)替代 - 别写错位置——必须在
User Settings,写进Default Settings会被忽略
最易被忽略的一点:untitled: 文件无法被构建系统(Build System)执行,比如选了 Python 构建后按 Ctrl + B,会提示 “No build system”。这不是 bug,是设计:没有路径就没有可执行目标。真要跑代码,必须先 Ctrl + S 保存为 .py 文件——这反而是防止误执行草稿的保护机制。











