节点树
当节点(可连接实体 ConnectableEntity)和连线组织起来形成一个庞大的网络时,有一些快捷操作
快速创建树结构
(Xmind 式的操作方式)
- 广度生长(创建同级节点):选中节点树上的一个节点,按
\反斜杠键,会在该节点下创建新的节点,并自动连接当前父节点这里没有使用Xmind习惯的Enter键,是因为 project-graph 最早Enter键是用来进入和退出编辑状态的,为了延续这种习惯避免冲突, 广度生长采用了Enter键上方的反斜杠键
当选中一个孤立的节点时,只能进行深度生长,不能进行广度生长,因为没有父节点
- 深度生长(创建子级节点):选中节点树上的一个节点,按
Tab键,会在该节点右侧创建新的节点,并自动连接当前父节点2.2 版本特性:在节点的编辑状态下,按Tab键时,不会输入制表符,而是将输入光标后的所有字符推出,形成新的子级节点的内容。
这两个按键可在设置中自定义修改
在2.2版本之前,连续创建多个子节点,需要不停的交替按 \(广度生长), Enter(退出编辑状态)。不断的退出编辑状态。
在 2.2 版本以后,节点在输入状态也可以进行 \ 和 Tab 键的生长,但输入状态下的快捷键是暂时无法自定义更改的。
这导致一个一个问题:如何在编辑时输入制表符和顿号、英文反斜杠?
如果要刻意输入此符号,有三种方法:
- 可以先把节点从树形结构中摘出来,再输入,输入好了之后再接入到树中。
- 可以把制表符、顿号、英文反斜杠先复制到粘贴板中,然后在输入状态下直接粘贴字符。
- 可以创建一个节点连向当前要输入这些符号的节点,使得当前节点有两个父节点,破坏了树形结构,进而广度生长和深度生长的树形操作特性失效, 等输入好之后再右键滑动砍掉刚才创建的连向它的节点即可。
移动树
左键拖拽一个节点,但按住 Ctrl 键可以带动所有子节点拖动整个树(注意只选中根节点)
可以拖动多个子树同时移动:
- 先选中多个树的根节点
- 按住
Ctrl键不松手 - 左键拖拽任意一个选中的根节点进行移动
特性:如果同时移动多个节点,若选中的节点中存在一个节点时另一个节点的子级节点,那么此节点的移动速度会增加一倍。
利用此特性,我们可以整个选中一个链条结构,然后按 Ctrl 键不松手拖拽根节点,就可以整体伸缩整个链条的长度。
此特性本质是移动速度叠加的 bug。不确定以后是否有机会修复。
实际上直接框选,直接拖拽移动整个树形结构就能完成树的移动。这种移动树主要用于两个场景:
- 整个树是自定义布局,使用此方法可以移动树的一部分子树。
- 我想移动整个树在舞台上的位置,但树的周围有各种各样的障碍物、遮挡、影响框选效率。
格式化树形结构
在 2.0 之后,出现了连线的端点位置代表生长方向的含义。
如何判断一个节点的生长方向?就看这个节点的父节点连向它的连线的端点位置。
- 如果这个连线是右侧发出左侧接收,那么此节点的生长方向向右
- 如果这个连线是左侧发出右侧接收,那么此节点的生长方向向左
- 如果这个连线是上侧发出下侧接收,那么此节点的生长方向向上
- 如果这个连线是下侧发出上侧接收,那么此节点的生长方向向下
- 如果连线的端点位置不符合上述四种情况,那么此节点的生长方向默认向右。
- 如果此节点就是根节点,没有指向它的父级连线,那么此节点的生长方向默认向右。
可以选中树形结构的任意一个节点,按 Alt+Shift+F 来进行格式化。
交换子节点之间的排列顺序
假设存在一个向右的树,可以拖拽一个子树的根节点,拖拽到同级节点的下方空隙位置中,然后按 Alt+Shift+F 来进行格式化。
格式化会自动调换两个子树的位置。
改变朝向
两种旋转方式
- 对准一个节点按住
Ctrl+鼠标滚轮,会带动整个“子树”转动 - 用鼠标拖拽连线,可以转动整个“子树”
翻转方向
- 选中根节点
- 在工具栏中点击对齐,打开对齐面板
- 点击“水平翻转”/“垂直翻转”按钮
2.0+没有工具栏了,需要选中跟节点然后右键菜单中找到“横向反转树形结构”、“纵向反转树形结构”
注意:在 2.0 之后,出现了端点位置代表生长方向的含义,因此可能还需要调整连线的端点位置。
转变成框嵌套结构
框的嵌套形式也可以看成一种树形结构,甚至比树形结构还更加直观,还包含了上下左右等位置信息。
因此当树过于庞大和复杂时,建议使用框的嵌套关系+树形结构结合的方式来整理内容。
- 选中根节点
- 在工具栏中点击对齐,打开对齐面板
- 点击“回”形图标的按钮(2.0+版本需要在右键菜单中点击“品”形图标按钮)
2.1.1特性:当对一个纯文本树结构整体进行 Ctrl+G
打包时,框会自动取标题为当前树形结构的根节点
将树结构导出为 markdown
详见“导出”章节