sublime text 原生不支持窗口置顶,transparency 插件通过调用系统 api 实现稳定置顶,需配置 "enable_topmost": true 且 "topmost_on_focus": false;windows 推荐 powertoys always on top 模块,macos/linux 则受限于系统机制与匹配精度。

Sublime Text 原生不支持窗口置顶,任何在 Preferences.sublime-settings 或 Window.sublime-settings 里添加 always_on_top、stay_on_top 等字段的操作都会被忽略,甚至导致配置解析失败。
为什么 Transparency 插件是目前唯一稳定方案
Transparency 插件不是“给 Sublime 加功能”,而是通过调用系统原生 API(如 Windows 的 WS_EX_TOPMOST、macOS 的 NSWindowLevelFloating)修改窗口样式。它绕过了 Sublime 的 UI 层限制,属于“借道操作”。但必须注意两点:
-
"enable_topmost": true是开启置顶的开关,缺一不可 -
"topmost_on_focus": false必须显式设为false——设成true后,每次你切回 Sublime,它会强制抢焦点并跳到最前,打断Alt+Tab流程 - 配置写在
Preferences → Package Settings → Transparency → Settings – User中,不是 Default 文件;改完需重启 Sublime,仅重载插件无效
Windows 用户别碰 AutoHotkey 脚本匹配标题
大量老教程教你在 AutoHotkey 里写 WinSet, AlwaysOnTop, Toggle, "Sublime Text 4",但问题在于:Sublime 窗口标题动态变化(含当前文件名、项目路径、版本号),一次匹配失败就失效。更可靠的是用 A 表示活动窗口:
^t:: ; Ctrl+T 切换当前激活窗口置顶状态 WinSet, AlwaysOnTop, Toggle, A return
这样无需关心标题内容,也不依赖进程名或类名。但要注意:WinSet 在 Sublime Text 4.4+ 启用 OpenGL 渲染后,部分高 DPI 多显示器场景下仍有概率失效。
PowerToys 的 Always on Top 模块更省心
微软官方 PowerToys(v0.89+)的 Always on Top 模块是目前 Windows 下最稳的选择,原因很实在:
- 不依赖窗口标题、进程名或类名,而是直接 hook 窗口句柄,兼容沙箱渲染模式
- 快捷键
Ctrl + Space默认全局可用,且可在 PowerToys 设置中自由重绑定 - 以普通用户权限运行即可生效,无需管理员提权
- 右上角显示
?图标直观反馈置顶状态,再按一次即取消
唯一要注意的是:若你同时开了多个 Sublime 窗口,它只作用于当前焦点窗口——这反而是优点,避免误锁后台窗口。
macOS 和 Linux 上的“置顶”本质是“前台激活”
macOS 原生不提供真正意义上的置顶能力。像 osascript -e 'tell application "Sublime Text" to activate' 只是把窗口拉到前台,并不能防止它被新弹出的 Finder 或通知遮住。真·置顶必须依赖第三方工具(如 Stay、Slate),而这些工具在 macOS 15 Sequoia 后频繁因辅助功能权限收紧而失效,每次系统更新都得手动重授「自动化 → System Events」权限。
Linux 下 wmctrl -r "Sublime Text" -b add,above 看似简单,但实际依赖窗口标题精确匹配——启动时带路径(如 Sublime Text - /home/user/project/main.py)就会失败。更稳妥的做法是先用 wmctrl -l | grep -i sublime 查真实标题,再构造命令。Wayland 桌面环境则基本无通用方案。
真正难处理的不是“怎么置顶”,而是多实例、多显示器、全屏/分屏模式切换时,置顶状态极易丢失或错位——这些边界情况,所有方案都只能靠人工干预补救。











