Sublime Text 启动时不恢复分屏布局是设计使然,因其仅保存会话级文件列表,不保存 layout 状态;需在用户设置中配置 layout JSON 并以 --new-instance 方式启动才生效。

Sublime Text 启动时无法自动恢复上次分屏布局,必须手动设置窗口初始 layout —— 这不是 bug,是设计:它只保存会话级的打开文件列表,不保存 layout 状态。
启动时强制加载 Grid 2×2 四宫格
Sublime 不会在启动时读取你上次关掉前的分屏状态。想每次打开就是四宫格,得改 Preferences.sublime-settings 里的 layout 字段,但注意:这个配置只在新窗口(--new-instance)或首次启动时生效,已有窗口切布局仍需快捷键。
- 打开
Preferences → Settings(左右两栏,改右边「User」面板) - 加入这段 JSON:
{ "layout": { "cols": [0.0, 0.5, 1.0], "rows": [0.0, 0.5, 1.0], "cells": [[0, 0, 1, 1], [1, 0, 2, 1], [0, 1, 1, 2], [1, 1, 2, 2]] } } - 保存后关闭所有 Sublime 窗口,再双击图标或命令行启动(不要用已存在的进程打开新文件)
- 如果没生效,检查是否被插件(如 Origami)劫持了
set_layout调用;可临时禁用插件验证
为什么改了 layout 配置却还是单栏启动
常见原因不是配置写错,而是启动方式不对:layout 设置只对“全新实例”起作用。如果你习惯从终端用 subl . 或从文件管理器双击文件打开,Sublime 默认复用已有进程,此时 layout 配置完全不加载。
- 确认启动方式:
subl --new-instance(Linux/macOS)或subl.exe --new-instance(Windows) - macOS 用户若用 Spotlight 启动,它默认不带
--new-instance,建议改用 Alfred 或终端 - Windows 用户右键菜单里“Edit with Sublime Text”通常也不带该 flag,需手动注册带参数的右键项
- 配置中的
cells坐标必须严格匹配cols/rows维度,比如cols有 3 个值 → 最大列索引是 2,cells里不能出现[0, 0, 2, 1]这种越界写法
固定双栏启动并预加载两个指定文件
纯 layout 配置只能定型窗口分割,不能控制打开哪些文件。要实现“一启动就双栏 + 左边打开 main.py、右边打开 test.py”,得组合使用命令行参数和插件逻辑,但原生不支持。稳妥做法是写一个启动脚本:
- Linux/macOS:
#!/bin/bash subl --new-instance --command "set_layout {\"cols\":[0.0,0.5,1.0],\"rows\":[0.0,1.0],\"cells\":[[0,0,1,1],[1,0,2,1]]}" sleep 0.3 subl --add --command "focus_group {\"group\": 0}" /path/to/main.py subl --add --command "focus_group {\"group\": 1}" /path/to/test.py - Windows 批处理类似,但
subl.exe对--command的 JSON 转义更敏感,建议用 PowerShell 封装 - 注意:
focus_group必须在set_layout之后执行,且中间加sleep,否则命令可能被丢弃 - 如果目标文件路径含空格或中文,务必用引号包裹,并确保 shell 编码与 Sublime 一致(UTF-8)
真正难搞的点不在 layout 写法,而在于 Sublime 启动流程中 layout、文件加载、焦点激活三者的执行时序——它们不同步,靠配置文件无法串起来。脚本或插件干预是唯一可靠路径,但每多一层封装,就多一分跨平台兼容风险。

















