Sublime Text 本身不渲染图片,仅通过插件实现预览:ImagePreview支持鼠标悬停缩略图,仅对显式正确路径生效;OpenImageExternallyCommand支持选中路径一键外开;MarkdownPreview生成HTML但图片显示依赖路径解析与浏览器策略,需配合http_server绕过file://拦截。

Sublime Text 本身不渲染图片,所谓“预览”都是绕过编辑器内核、靠插件或系统调用实现的——没有真正的内嵌视图,只有路径触发、悬停弹窗、外部打开这三种可靠路径。
ImagePreview 插件:悬停缩略图最稳方案
这是目前唯一能模拟 VS Code 鼠标悬停即出图效果的插件,不依赖浏览器、不改文件关联,纯本地弹窗。
- 只对代码中显式写出的路径生效,比如
、background: url(img/icon.svg),路径必须拼写正确,错一个点或斜杠就完全不显示 - SVG 渲染走 Sublime 内置 WebKit,复杂 SVG(含
<script>或远程<image xlink:href>)会空白,不是插件 bug,是底层限制 - 预览窗大小固定、不可拖拽,也不支持滚轮缩放;右键菜单里没有“保存图片”选项,想存图得截图
- 安装后无需重启,但需确保当前文件语法识别正确——状态栏显示
Markdown或CSS,而不是Plain Text
OpenImageExternallyCommand:选中路径一键外开
比双击打开更可控:避免乱码、跳过二进制解析、自动校验路径是否存在。
- 绑定快捷键如
Ctrl+Alt+I(避开Ctrl+P冲突),选中路径字符串后直接调用系统默认看图程序 - 命令内部做了
os.path.exists()检查,路径不存在时静默失败,不会报错也不会打开空白窗口 - Windows 下若路径含空格,需在命令中用
urllib.parse.quote()编码,否则file://协议会被截断 - 不适用于 Markdown 中的相对路径如
../img/a.jpg——它只处理绝对路径或当前目录起始的./路径
MarkdownPreview:图片显示不出?先盯住这三个点
它不负责加载图片,只生成 HTML;图片是否出现,90% 取决于路径解析和浏览器策略。
-
和在某些配置下行为不同——前者按项目根目录解析,后者按当前文件所在目录,别混用 - Chrome 默认拦截
file://协议下的本地图片请求,解决办法不是加启动参数(Gatekeeper 会拦 macOS),而是让插件把小图转成data:image/png;base64,... - 如果预览页空白,先看右下角状态栏:必须是
Markdown语法,不是Plain Text;再检查插件设置里是否启用了"enable_highlight": true,否则代码块高亮失败可能连带阻塞整个渲染
SVG 文件边改边看:别指望单插件搞定
Sublime 打开 SVG 就是 XML 源码,想实时看效果,必须跳出编辑器。
- 推荐组合:
SVGViewer插件 + 右键 →View in Browser,它会自动起一个本地 HTTP 服务(非file://),绕过浏览器安全策略 - 更轻量的替代:用
SideBarEnhancements右键菜单直接调用Inkscape或Preview.app(macOS),响应比浏览器快,适合高频修改 - 如果 SVG 里用了
<use href="#symbol">且符号定义在外部文件,外部工具也打不开——这种场景只能切到浏览器调试,Sublime 纯属文本编辑器,不处理跨文件引用
真正容易被忽略的是路径上下文:Sublime 不维护“当前工作目录”概念,所有相对路径都以被编辑文件为基准解析,不是以项目根目录或 Sublime 窗口打开位置为准。这点和 VS Code 有本质区别,调不通时先确认路径是不是从 .md 或 .css 文件所在目录出发能走通。

















