imagepreview插件可实现鼠标悬停缩略图预览,需通过package control安装,仅支持代码中显式路径如,不支持错误路径fallback,svg渲染依赖系统webkit。

Sublime Text 本身不渲染图片,所谓“预览”全是靠外部机制模拟出来的——没有内嵌画布,也不走 WebView 渲染,所有图片显示行为都依赖路径解析 + 系统调用 + 插件注入。想让它像 VS Code 那样悬停看缩略图、双击打开、或在 Markdown 里实时看到图,得明确知道每种方式的生效边界和失效条件。
ImagePreview 插件怎么让鼠标悬停出缩略图
它只对代码中**显式写出的字符串路径**起作用,不是语法高亮识别,也不是文件系统扫描。路径必须能被插件原样提取出来,且存在可读文件。
- 支持的写法:
、background: url("../img/icon.svg")、<img src="images/screenshot.jpg"> - 不支持的写法:
require('./icon.png')(JS 模块语法)、url(${iconPath})(模板字符串)、路径拼接变量如"images/" + name - 路径写错(比如少个
./或多一层../)时,预览直接不出现,也不会报错或提示 - SVG 渲染依赖系统 WebKit,macOS 上通常 OK;Windows/Linux 可能空白,尤其是含
<script></script>或远程<use href></use>的 SVG
双击 .png/.jpg 文件为什么满屏十六进制
这不是 bug,是 Sublime 的设计逻辑:它把所有二进制文件当 raw bytes 读取,不区分 MIME 类型。你看到的 89 50 4E 47 0D 0A 就是 PNG 文件头的真实字节。
- 别去改
ignored_packages或强行绑定Plain Text语法——这只会让高亮错乱,不解决预览问题 - 真正有效的做法是注册自定义命令,比如
OpenImageExternallyCommand,在用户双击图片文件时自动调用webbrowser.open()或os.startfile() - Windows 下路径含空格必须用
urllib.parse.quote()编码,否则file://协议会被浏览器截断 - 推荐快捷键设为
Ctrl+Alt+P,避开和默认的Ctrl+P(快速打开)冲突
Markdown 里图片不显示?先盯住这三个点
MarkdownPreview 不加载图片,它只生成 HTML;图片能否显示,完全取决于浏览器能否从当前页面位置正确请求到资源文件。
- 路径是相对于
.md文件所在目录计算的,和在某些解析器下行为不同,建议统一用带./的写法 - Chrome 默认拦截
file://协议下的本地图片请求,Network 面板看到 404 但地址明明存在?大概率是这个原因 - 解决方法有两个:启用插件的
"enable_highlight": true强制转 base64(仅限小图),或换用OmniMarkupPreviewer并在终端运行open -a "Google Chrome" --args --allow-file-access-from-files(macOS) - 别信“配置完就自动实时”,首次必须手动执行一次
Markdown Preview: Preview in Browser,之后enable_autoreload才会监听已打开页面的变化
Graphviz DOT 文件怎么预览成图
GraphvizPreview 插件本质是封装了 dot 命令行工具,它不渲染,只调用系统已安装的 Graphviz 生成 PNG/SVG 再打开。
- 必须提前装好 Graphviz,并确保
dot在 PATH 中,否则按Ctrl+Shift+G会静默失败 - 插件默认输出格式是 PNG,若想改 SVG,需在用户设置里加:
"output_format": "svg" -
dot -Tpng -o a.png a.dot这类命令行能跑通,插件才能工作;反过来,插件报错时优先查命令行是否可用 - 生成的图片文件默认放在与
.dot同目录,不会自动清理旧图,多次保存可能堆积冗余文件
最常被忽略的一点:所有“预览”功能都建立在路径准确、工具链完整、协议允许的基础上。Sublime 不做任何兜底,写错一个点、少装一个依赖、浏览器策略一变,整个链路就断——它不像 IDE 那样集成环境,而更像一把精准但需要自己配弹药的枪。











