sublime text的markdownpreview不支持真正实时同步,因其自身无内置websocket或文件监听机制,所有“自动刷新”均依赖外部配合:需手动首次触发预览、显式启用enable_autoreload、浏览器禁用预测服务、使用http协议而非file://,且文件后缀必须为.md并正确识别为markdown语法。

MarkdownPreview 是目前 Sublime Text 上最稳定、兼容性最好的 Markdown 预览方案,但它**不支持真正实时同步**——所谓“保存即刷新”,实际是靠配置 enable_autoreload + 浏览器配合实现的近似效果。其他名字带 “Live”“Sync”“Real-time” 的插件,90% 在 ST4 下已失效或引发崩溃。
为什么装了插件还不能自动刷新?
根本原因在于 Sublime 本身没有内置 WebSocket 或文件监听刷新机制,所有“自动刷新”都依赖外部配合:
-
MarkdownPreview默认是手动触发:必须先执行一次Markdown Preview: Preview in Browser,它才会在后台注入刷新脚本 -
enable_autoreload不是开箱即用功能:需在Preferences → Package Settings → Markdown Preview → Settings的用户配置中显式添加"enable_autoreload": true - Chrome/Edge 会拦截
file://协议下的自动刷新:必须关闭设置里的「使用预测服务来加载网页」,否则控制台报Failed to execute 'postMessage' on 'DOMWindow' - 路径含中文或空格时,
file://URL 极易被浏览器拒绝:建议用http-server或livereload起本地服务,改用http://localhost:8080打开
LiveReload 插件名是最大误导点
Sublime 里搜到的任何叫 LiveReload 的插件(如 SublimeLinter-contrib-livereload)都不起作用——它们要么只适配 ST3,要么只是监听器,根本不发刷新指令。
真正生效的是两件独立东西:
- 命令行工具:
livereloadCLI(需npm install -g livereload),运行时指定端口和扩展名,例如:livereload . --port 35729 --exts md,html,css - 浏览器扩展:Chrome/Edge 必须安装官方 LiveReload 扩展,且右下角显示
LiveReload is connected - 网页必须用
http://协议打开:file://下扩展被禁用,WebSocket 连接直接失败,错误信息是WebSocket connection to 'ws://localhost:35729/livereload' failed
别碰 Sync Settings 和 MarkdownEditing 做预览
Sync Settings 只同步你的 Packages/User/ 配置文件,跟浏览器、预览、刷新毫无关系。名字带 “Sync” 纯属巧合,它连浏览器进程都不启动。
MarkdownEditing 是编辑增强插件,提供语法高亮、快捷键、代码片段,但完全不渲染也不预览。有人把它和 MarkdownPreview 一起装,结果命令冲突、右键菜单消失、保存卡顿——只留一个 MarkdownPreview 就够用。
若你真需要侧边实时预览(类似 Typora),Sublime 做不到。它的架构不支持内嵌 HTML 渲染面板,所有“预览”本质都是调用外部浏览器。
最容易被忽略的三个硬性条件
即使配置全对,以下三点任一不满足,enable_autoreload 就不会工作:
- 当前文件后缀必须是
.md(不是.markdown或.txt),且右下角状态栏显示为Markdown语法(不是Plain Text) - 首次预览必须手动执行一次
Markdown Preview: Preview in Browser;之后关掉标签页再重开,enable_autoreload就失效 - Sublime 自带 Python 必须能跑通解析:ST4 内置 Python 3.8+,但如果你改过
python_interpreter设置或用了自定义构建系统,可能触发ImportError: No module named 'markdown'











