首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动缩进图形.dot文件

自动缩进图形.dot文件
EN

Stack Overflow用户
提问于 2014-01-06 09:38:31
回答 2查看 1.2K关注 0票数 3

我正在绘制一个长而复杂的架构图。文档缩进混合了制表符、空格和缩进级别,这让我抓狂。

在Linux环境中,有一种简单的方法可以自动缩进.dot 文件吗?

一个纯粹的命令行工具是最好的,但是像vim这样的流行编辑器的插件也是一个很好的解决方案。

更新

vim缩进在边缘的节点名中有一个:错误。例如,server_a:event -> log_server;会使下一行进一步缩进,大概是因为:被解析为块声明(参见Harry Pehkonen's answer上的注释)。引用节点名称(例如"server_a":event -> log_server;)解决了这个问题:

代码语言:javascript
复制
#!/usr/bin/python3

import re

dot=open('components.dot').read()
reg=re.compile("(\s)(\S+)(\:.*\-\>)")
print(reg.sub(r'\1"\2"\3', dot))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-07 00:04:39

Vim有点语法知识的开箱,似乎重新缩进点文件为我。

我删除了所有的缩进,转到文件的顶部,然后做=G

您的全局选项卡相关值决定是否使用制表符/空格,多少,等等。

如果需要,可以使用以下内容创建脚本:

代码语言:javascript
复制
> vim -W reIndentAndSave whatever.dot

编辑你的点文件,从顶部重新缩进

代码语言:javascript
复制
gg=G

...Save

代码语言:javascript
复制
:x

然后,对于您想要通过刚才录制的脚本重新缩进的每个文件,

代码语言:javascript
复制
> vim -s reIndentAndSave somegraph.dot
票数 2
EN

Stack Overflow用户

发布于 2015-10-02 15:05:25

在emacs上,如果缓冲区具有支持缩进的模式,则可以重新设置整个缓冲区,如:C-x h,以选择所有缓冲区,然后选择indent-region

它是互动的,不是脚本的,但它有效。

如果你的emacs有graphviz-dot-mode,你可以试一试。

然而,我对这种特殊模式的结果并不完全满意,因为它往往无法使大括号与打开大括号对齐(至少graphviz-dot-mode.el版本0.3.6日期为19/02/2011)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20946940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档