如何让Sublime Text 4根据启动方式决定是否恢复历史文件?
实现Sublime Text Build 4143的条件化会话恢复
Sublime Text本身没有原生支持按启动场景切换会话恢复逻辑,但可以通过配置修改+AppleScript脚本实现你的需求:
1. 基础配置调整
打开Sublime Text,进入Preferences > Settings,在右侧的用户配置文件中写入以下内容:
{ "restore_session": false, "auto_save_session": true }
restore_session: false:让Sublime默认启动时不自动恢复之前的会话auto_save_session: true:确保Sublime会自动保存当前会话到本地文件,方便后续手动恢复
2. 编写启动控制脚本
用系统自带的「脚本编辑器」创建一个AppleScript,用来区分两种启动场景:
-- 直接启动时,恢复之前的会话 on run tell application "Sublime Text" activate set sessionFile to (path to application support folder from user domain as text) & "Sublime Text/Packages/User/Session.sublime_session" try do shell script "open -a 'Sublime Text' " & quoted form of POSIX path of sessionFile end try end tell end run -- 从Finder打开文件时,仅打开目标文件 on open targetFiles tell application "Sublime Text" activate repeat with fileItem in targetFiles open fileItem end repeat end tell end run
保存这个脚本为Sublime Launcher.scpt,建议存放在~/Library/Scripts/目录下。
3. 设置启动入口
- 把原Sublime Text应用从Dock移除,改用这个脚本作为直接启动入口:可以用「自动操作」把脚本打包成应用(打开自动操作,选择「应用」,添加「运行AppleScript」动作,粘贴上述代码,保存为
Sublime Launcher.app) - 保持原Sublime Text应用的文件关联:Finder中右键点击任意代码文件,选择「显示简介」,设置「打开方式」为原Sublime Text应用,点击「全部更改」
这样操作后:
- 点击
Sublime Launcher.app启动时,会自动恢复之前的会话 - 从Finder双击文件或拖文件到原Sublime图标时,只会打开目标文件,不会恢复旧会话
内容的提问来源于stack exchange,提问作者Jason Robinson
相关产品推荐
相关产品推荐

