Sublime Text 无默认保存路径配置,首次保存未命名文件时对话框位置取决于上下文:未打开文件夹则定位系统文档目录,已打开文件夹或项目则定位对应根目录;唯一原生方案是通过 .sublime-project 绑定路径上下文,并可用 Python 插件监听 on_new 事件实现 new1、new2 自动命名。

Sublime Text 没有“默认保存路径”这个配置项,也不存在全局生效的“新文件命名规则”开关——所有试图靠改 Preferences.sublime-settings 里加 default_save_path 或 new_file_name 的做法,都会失败。
为什么 Ctrl+S 总跳到桌面或文档目录?
这是 Sublime 的行为逻辑决定的:它不记“默认路径”,只记“最近一次你手动选过的路径”,且该记忆不跨会话(除非开启 hot_exit)。新建未命名文件(untitled)首次保存时,必然弹系统对话框;弹出位置取决于当前上下文:
- 没打开任何文件夹或项目 → 默认落到系统文档目录(Windows 是
%USERPROFILE%\Documents,macOS 是~/Documents) - 已通过
File → Open Folder…打开某个目录 → 对话框默认定位到该目录 - 已加载 .sublime-project 项目 → 默认定位到项目根目录(不是靠配置,是项目机制自带)
常见错误是往 Preferences.sublime-settings 里硬塞 "save_dialog_default_directory": "D:/my-work" —— Sublime 完全忽略这个键,既不报错也不生效。
用 .sublime-project 绑定真实可用的“默认保存位置”
这是唯一原生、稳定、无需插件的方案。关键不是“设路径”,而是“建上下文”:
- 新建一个空文件夹,比如
D:\projects\scratch - 在 Sublime 中点击
Project → Add Folder to Project,选中该文件夹 - 按
Ctrl+N新建文件,编辑后按Ctrl+S→ 对话框自动打开在D:\projects\scratch - 再点
Project → Save Project As…,存为scratch.sublime-project,以后双击就能复用整套路径上下文
注意:hot_exit 和 remember_open_files 若开启,可能让未保存的 untitled 标签页在下次启动时自动恢复,从而绕过项目上下文。如需严格控制,建议在 Preferences.sublime-settings 中显式关闭:"hot_exit": false、"remember_open_files": false。
让新文件自动命名为 new1、new2…(非官方但可靠)
Sublime 不提供内置命名模板,但可通过 Python 插件监听 on_new 事件实现。这不是 hack,而是官方 API 支持的标准用法:
- 菜单栏选择
Tools → Developer → New Plugin…,会生成一个untitled.py文件 - 替换内容为以下代码(注意缩进和大小写):
import sublime
import sublime_plugin
class UntitledRenamer(sublime_plugin.EventListener):
def on_new(self, view):
if not view.window():
return
views = view.window().views()
i = 1
while True:
found = False
for v in views:
if v.name() == "new{}".format(i):
found = True
break
if found:
i += 1
else:
break
view.set_name("new{}".format(i))
- 保存为
Packages/User/untitled_renamer.py(路径必须准确,文件名任意但建议有意义) - 重启 Sublime 或用
Ctrl+Shift+P → Satisfy Dependencies(部分版本需手动触发重载)
这个插件只影响新建的 untitled 标签页,不会干扰已命名文件或项目内文件。它不修改保存路径,只解决“一堆 new untitled”难区分的问题。
别碰 Default 设置文件,也别信“一键设置包”
所有声称能“全局修改默认保存路径”的第三方插件,要么依赖不稳定的 hook(如拦截系统对话框),要么只是帮你批量生成 project 文件——本质仍是项目机制。而直接改 Default/Preferences.sublime-settings 是最危险的操作:升级 Sublime 后会被覆盖,且可能引发插件读取冲突。
真正需要关注的只有两处:
-
Packages/User/Preferences.sublime-settings:只写你明确要覆盖的项,比如"hot_exit"、"remember_open_files" -
Packages/User/xxx.sublime-project:这才是控制路径的“配置实体”,不是临时记忆,而是可版本管理、可分发的上下文定义
复杂点在于:路径控制和命名控制是两个独立维度,前者靠项目上下文,后者靠插件事件监听——它们无法用同一个配置项联动。想同时解决,就得并行维护 project 文件 + 插件脚本,而不是幻想存在一个万能开关。

















