command+m无响应主因是graphviz路径未配置或plantuml.jar损坏;架构图错位需用显式定位替代全局方向;中文乱码须设charset为utf-8;预览模糊应调高graphviz_dpi。

Command+M没反应?先查Graphviz路径和plantuml.jar完整性
Sublime里按Command+M(macOS)或Ctrl+M(Windows)没任何输出,90%不是插件没装好,而是两个核心依赖之一失效:dot.exe找不到,或plantuml.jar损坏。
- Windows用户检查系统环境变量是否设置了
GRAPHVIZ_DOT,值必须是完整路径,比如C:\Program Files\Graphviz2.44\bin\dot.exe;同时确保该目录已加入PATH - macOS用户别信
which dot能用就万事大吉——Sublime插件不读系统PATH,必须在Preferences → Package Settings → Diagram → Settings – User里硬编码:"dot_executable": "/opt/homebrew/bin/dot"(路径以which dot输出为准) - 无论哪个平台,打开
Packages/sublime_diagram_plugin/diagram/plantuml.jar,文件大小若小于1.2MB,基本就是下载不全。去PlantUML官方发布页下载最新plantuml.x.y.z.jar,直接替换,重启Sublime
架构图连线堆叠、节点错位?别硬调left to right direction
写完[API Gateway] --> [Auth Service]发现所有节点挤在左上角,箭头交叉重叠——这不是PlantUML“不智能”,而是默认布局策略不适合拓扑表达。
-
left to right direction必须紧贴@startuml写在第一行,否则无效;但它只影响整体流向,对嵌套容器内子节点无约束力 - 更可靠的方式是放弃全局方向,改用显式定位:
-right->、-down->替代-->,例如WebServer -right-> APIGateway - 中文节点名直接参与连接(如
[用户服务] --> [订单服务])易触发解析失败,应改用英文别名:[user-svc] as "用户服务",再写user-svc --> order-svc - 文字被截断或字体过小?加
skinparam defaultFontSize 14到@startuml后,避免自动换行可配skinparam wrapWidth 300
流程图里菱形判断框文字跑出框外?关键在skinparam和引号
写if (用户已登录?) then (是)生成的判断框,文字要么溢出,要么显示为方块——问题不在Graphviz渲染,而在PlantUML对文本块的默认处理逻辑。
- 所有含空格或标点的判断条件,必须用双引号包裹:
if ("用户已登录?") then (是),否则PlantUML会把空格当分隔符切开 - 中文乱码不是字体缺失,而是Java渲染时未指定字符集。务必在Diagram插件的
Settings – User中加入:"charset": "UTF-8"和"java_options": "-Dfile.encoding=UTF-8" - 避免使用
note right这类浮动标注,它常因布局算法错位。改用rectangle "说明文字" as note1+note1 .> targetNode显式锚定
预览图模糊、激活条不显示?时序图和流程图要分开对待
同一份.puml文件里混写时序图和流程图,经常出现生命线没激活条、或流程节点变虚线——PlantUML不同图表类型底层渲染引擎不同,不能靠“通用配置”一揽子解决。
- 时序图必须显式控制生命周期:
activate和deactivate成对出现,嵌套调用也要配对,漏一个就会导致后续所有激活条错位 - 流程图默认不启用Graphviz渲染,但复杂分支仍需它介入。若发现菱形/圆形节点边缘锯齿,确认
dot_executable路径正确,并在Settings – User中加"use_graphviz": true - 预览窗口字体小、线条细?不是缩放问题,而是Graphviz默认DPI太低。在
Settings – User里加"graphviz_dpi": 150(macOS建议120–150,Windows建议96–120)
真正麻烦的不是语法本身,而是每个环节都依赖外部工具链的精确对齐:Java版本、Graphviz路径、jar包完整性、字符集声明,缺一不可。改完一处,记得重启Sublime再验证,别指望热重载生效。











