
Sublime Text 里写 Markdown,别装插件就开写
Sublime Text 本身不带 Markdown 语法高亮和渲染,但开箱即用就能识别 .md 后缀——只要文件名以 .md 或 .markdown 结尾,右下角会自动显示 “Markdown” 语言模式,触发基础语法着色。不需要装任何插件也能写,只是纯文本编辑器级别的支持。
常见错误现象:Sublime Text 打开 readme.md 却显示为纯文本(黑底白字无颜色)——大概率是右下角语言模式被手动切成了 Plain text,点一下右下角文字,选回 Markdown 就行。
- 语言模式切换路径:右下角点击 → 搜索
Markdown→ 选中即可 - 想默认打开所有
.md文件都用 Markdown 模式?在菜单栏View → Syntax → Open all with current extension as… → Markdown - 注意:仅设置语法高亮,不等于能预览;高亮靠 Sublime 自身,预览必须依赖插件或外部工具
实时预览 Markdown 必须用插件,但别乱装 Package Control
Sublime Text 原生不支持 HTML 渲染面板,所谓“实时预览”,本质是调用插件启动一个本地服务,把当前 MD 转成 HTML 并用浏览器打开或内嵌 iframe。最稳定、维护活跃的是 MarkdownPreview,不是 MarkdownEditing(它只管编辑体验)。
容易踩的坑:Package Control 安装完插件后没重启 Sublime,或者装了多个预览插件互相冲突(比如同时装了 MarkdownPreview 和 OmniMarkupPreviewer),结果快捷键失效、右键菜单消失、甚至保存时卡住。
- 只装一个预览插件:推荐
MarkdownPreview,GitHub 主页明确标注支持 Sublime Text 4,兼容性好 - 安装后必须重启 Sublime,否则
ctrl+shift+P里搜不到Markdown Preview: Preview in Browser - 默认预览用系统默认浏览器;想换 Chrome 或 Edge,改配置项
"browser": "chrome",路径不用填,插件已内置常见浏览器识别逻辑 - 预览不是“所见即所得”:表格对齐、自定义 CSS、部分 HTML 标签(如
<details></details>)可能不渲染,这是预期行为,不是 bug
快捷键和右键菜单失效?检查插件绑定和作用域
装完 MarkdownPreview,按 ctrl+shift+P 能搜到命令但快捷键 ctrl+shift+M 不响应,或者右键没 “Preview in Browser” 选项——问题通常出在作用域(scope)没匹配上,也就是 Sublime 没认定当前文件是 Markdown。
验证方式:按 ctrl+shift+P 输入 Set Syntax: Markdown 手动设一次,再试快捷键。如果好了,说明之前语言模式没生效;如果还是不行,看配置是否覆盖了快捷键。
- 检查快捷键是否被其他插件占用:打开
Preferences → Key Bindings,左侧是默认键位,右侧是用户键位,确认ctrl+shift+M没被重写成别的命令 - 确保当前视图作用域是
text.html.markdown:按ctrl+alt+shift+P看状态栏,应显示该 scope;若显示text.plain,说明文件没被识别为 Markdown - 插件配置里有
"enable_autoreload": true是开启保存即刷新,但只对浏览器预览有效;内嵌预览(Preview in Sidebar)不支持自动刷新,需手动再按一次快捷键
性能差、卡顿、预览空白?关掉实时监听和多余渲染器
大文件(>10KB)或含大量图片/脚本的 Markdown 在预览时容易卡顿、浏览器打不开、甚至 Sublime 整体变慢——根本原因是 MarkdownPreview 默认启用了 autoreload 和多渲染器(GitHub、MultiMarkdown、Python-Markdown)并行解析。
真实场景中,95% 的文档用 Python-Markdown 渲染器就够了,其余两个反而增加启动延迟和内存占用。
- 关闭自动重载:配置项设
"enable_autoreload": false,手动按快捷键更稳 - 指定单一渲染器:加配置
"parser": "pythonmarkdown",避免插件每次猜用哪个 - 禁用 MathJax(除非真写公式):配置里删掉或注释掉
"enable_mathjax",能明显提速 - 图片路径别用绝对路径:预览时相对路径(如
)才可正常加载;file:///开头的绝对路径在浏览器沙箱下会被拦截
真正麻烦的从来不是装插件,而是插件之间 scope 没对上、配置项互相覆盖、还有那些藏在 Preferences → Package Settings → MarkdownPreview → Settings 里的默认值——它们不会主动告诉你正在生效。










