sublime text 4 是底层重写带来的体验跃迁,响应更快、滚动更顺、内存更省,但存在 gpu 渲染兼容性问题、tab 触发 snippet 行为变更、多选标签限制及 python 3.8 插件兼容性等关键变化。

Sublime Text 4 不是“小修小补”,而是底层重写带来的体验跃迁。如果你用的是 M1/M2 Mac、高分辨率显示器,或常开几十个标签处理大型日志/代码文件,升级后能明显感知到响应变快、滚动更顺、内存更省——但别急着点更新,有些功能变化会悄悄打乱你已有的工作流。
GPU 加速渲染开启后界面卡顿或闪烁
这是最常被忽略的兼容性坑。ST4 默认启用 GPU 渲染,对 Intel HD 4000 及更老显卡、部分 Linux 发行版(如 Ubuntu 20.04 + Nouveau 驱动)可能触发渲染异常,表现为标签页闪退、状态栏错位、滚动撕裂。
- 临时关闭:在
Preferences → Settings中添加"hardware_acceleration": "none" - 仅禁用 GPU 合成(保留部分加速):设为
"hardware_acceleration": "canvas" - Windows 用户若用远程桌面连接,也建议关掉,否则可能黑屏或无响应
Tab 键无法触发 snippet 的真实原因
不是 bug,是行为变更。ST4 将 tab_key 的默认绑定从“无条件插入 snippet”改成了“仅在当前作用域匹配且无其他补全候选时才触发”。这意味着:输入 for 后按 Tab,如果 LSP 插件正返回函数建议,snippet 就会被跳过。
- 恢复旧行为:在
Preferences → Key Bindings中添加这条绑定:[{"keys": ["tab"], "command": "insert_snippet", "args": {"name": "Packages/User/your-snippet.sublime-snippet"}}] - 更稳妥的做法:用
Ctrl+Space手动唤出补全面板,再用方向键选中 snippet 行,回车确认 - 检查
view.settings().get("auto_complete")是否为True,某些插件(如 AutoFileName)会临时关闭它
多行标签页与多选标签的实际限制
“多行显示”只是视觉换行,不改变底层标签管理逻辑;而“多选标签”看似方便,但只支持鼠标拖选或 Ctrl+Click 逐个加选,不支持 Shift+Click 区间选择——这点和浏览器完全不同,容易误判。
- 批量关闭:选中多个标签后,右键 →
Close Selected Tabs,或按Ctrl+W(Windows/Linux)/Cmd+W(Mac) - 拆分对比:选中两个标签后,拖拽任一标签到编辑区边缘可自动创建新组,但不能三标签同时拖入不同组
- 注意:多选状态不会保存到会话恢复中,重启后全部取消
Python API 升级到 3.8 后插件报错
ST4 底层 Python 运行时升至 3.8,asyncio、typing 等模块行为有细微差异。常见报错如 AttributeError: module 'asyncio' has no attribute 'ensure_future' 或 ImportError: cannot import name 'Literal',多因插件用了已弃用的 API。
- 先确认插件是否更新:在
Package Control → List Packages中查看版本号,重点检查SublimeLinter、Emerald、BracketHighlighter等高频插件 - 临时降级兼容:在插件的
plugin.py开头加import sys; sys.version_info = (3, 8, 0)(仅应急,不推荐长期使用) - 调试入口:打开
Console(Ctrl+`),启动时看是否有ImportError或SyntaxError报错行
真正影响日常效率的,往往不是“有没有新功能”,而是“旧习惯还能不能照常走通”。比如你依赖 Tab 触发 snippet 写 Python,又开着 LSP 插件,那 ST4 的默认逻辑就会拦你一下——这种细节不会写在官网 changelog 里,但每天都会撞上。升级前最好花 5 分钟,在测试项目里跑一遍你最常用的快捷键链路。











