跳到主要内容

资源管理器

资源管理器是一个停靠在 ERD 画布左侧边缘的面板,以树形列出整张图:先是各个表,每个表下有其列、索引和外键,然后是表分组,最后是备注。点击某一行即可跳转到该行在画布上所代表的对象。
资源管理器会让画布变窄,而不是覆盖在画布上。它是图编辑器自身的一部分,而不是 VS Code 的资源管理器视图或 Obsidian 的文件浏览器。

从工具栏打开资源管理器,跳转到 products,再跳转到 orders 的 status 列和 member_id 外键,用 Collapse All 折叠,加宽面板,然后将其关闭

查找与替换位于资源管理器顶部,在标题栏与树之间。查找输入框中有文本时,树只显示匹配的内容,参见结果。
树本身永远不会修改图:它不提供重命名、拖动、删除,也不提供显示与隐藏。替换是该面板唯一会做出的编辑。

资源管理器自身的状态只属于你自己:是否打开、宽度、折叠状态、键盘焦点所在的行、滚动位置以及搜索。
这些状态都不会保存到文件中,不会记录到 Undo 历史记录中,不会与协作者共享,也不会存储在浏览器中。只要编辑器保持打开,它们就会一直保留,切换标签页或在同一个编辑器中载入其他文档时也是如此。新打开的编辑器中,资源管理器初始为关闭状态。

打开与关闭​

可以通过以下任一方式打开:

  • 工具栏中紧跟在 Search 之后、带有树形图标的 Explorer 按钮。其提示为 Explorer (Ctrl + F) (Windows/Linux) 或 Explorer (⌘ + F) (Mac)。
  • Ctrl + F (Windows/Linux) 或 ⌘ + F (Mac),在设置的快捷键标签页中名为 Toggle Explorer。
  • 快速搜索中的 Toggle Explorer,每个标签页的列表中都有。输入 find、replace、rename、tree、outline 或 objects 即可找到它。
  • 画布右键菜单中的 Toggle Explorer:在 ERD 画布上任何表分组之外的空白处点击右键。它位于 New Table、New Memo 和 New Table Group 之后、Relationship 之前。

这两个 Toggle Explorer 条目会在右侧显示快捷键。
工具栏按钮、快捷键和快速搜索中的条目在每个标签页中都有效。在 Visualization、Schema SQL、Code Generator 或 Settings 标签页中使用时,会先切换到 ERD 标签页,因为资源管理器只在那里显示。

工具栏按钮只负责打开和关闭面板。它不会把光标放到查找输入框中,也不会关闭表属性、主题构建器和 Display Language 选择器。
快捷键和这两个 Toggle Explorer 条目会打开资源管理器并定位到其搜索:光标移到查找输入框并选中其中的文本,资源管理器旁的对话框中所列的五个对话框中已打开的那个会关闭。搜索在两次打开之间保留哪些内容,参见查找与替换中的打开与关闭。
在编辑表的单元格、备注或表分组的名称时,快捷键不起作用。

资源管理器在 ERD 标签页中处于打开状态且未被禅模式隐藏时,工具栏按钮显示为按下状态。此时,该按钮、快捷键和任一 Toggle Explorer 条目都会关闭资源管理器,原本位于面板中的键盘焦点会回到编辑器。
快速搜索或这五个对话框之一打开期间,快捷键永远不会关闭资源管理器。它会改为关闭命令面板或该对话框,并把键盘焦点移到查找输入框,同时选中其中的文本;如果资源管理器原本已经显示,当前匹配项也保持不变。快速搜索中的 Toggle Explorer 条目没有这种例外:执行它会关闭命令面板,然后关闭已打开的资源管理器。

标题栏中提示为 Close 的 x 按钮同样会关闭资源管理器,并把键盘焦点交给画布。Escape 不会关闭它,参见资源管理器中的按键。
重新打开时,资源管理器会恢复原来的宽度,树的折叠状态和滚动位置与之前相同,查询内容也不变。通过快捷键或 Toggle Explorer 条目打开时,它会重新搜索该查询内容,并展开所有结果,参见结果。

当快捷键或 Toggle Explorer 条目在过窄、容不下资源管理器的编辑器中打开它时,会显示 Widen the window to show the Explorer 提示,键盘焦点则留在原处,参见画布旁边。
尽管如此,资源管理器仍处于打开状态,工具栏按钮也显示为按下状态;一旦编辑器足够宽,它就会以已完成搜索的状态出现,但不会夺取键盘焦点。用工具栏按钮打开时不会显示这条提示。

画布旁边​

资源管理器位于 ERD 标签页的左侧边缘、工具栏下方,纵向贯穿画布的整个高度。
画布会变窄为它让出空间,因此图的任何部分都不会位于面板下方,画布工具栏、小地图和欢迎界面也都位于其旁边的画布中。
打开、关闭资源管理器或调整其宽度都不会滚动图,也不会在 Undo 历史记录中记录任何内容。

在新打开的编辑器中,它的初始宽度为 260px。拖动其右侧边缘可将宽度设为 200px 到 480px 之间的任意值,双击该边缘则恢复为 260px。

画布始终在资源管理器旁保留至少 320px 的宽度:

  • 编辑器的宽度小于资源管理器的宽度加上 320px 时,资源管理器会绘制得更窄以适应空间,最窄为 200px。
  • 编辑器的宽度小于 520px 时,它会让位。它不再绘制,但仍保持打开,因此工具栏按钮仍显示为按下状态,按下该按钮会将其关闭。编辑器足够宽后,它会以自己的宽度重新出现。

这里计算的是编辑器本身的宽度,而不是浏览器窗口的宽度,尽管打开与关闭中的提示说的是窗口。

在从右到左书写的显示语言中,资源管理器仍位于画布左侧,因为画布永远不会镜像。
其内部从右到左阅读:标题栏、搜索和各行都会镜像显示,各行从右侧缩进。可拖动的边缘仍在其右侧,紧贴画布。数据类型、索引列和外键文本保持从左到右的顺序。

何时让位​

资源管理器只在 ERD 标签页中显示。
切换到其他标签页会将其隐藏,工具栏按钮也不再显示为按下状态。回到 ERD 标签页后,它会以离开时的状态重新显示,折叠状态和滚动位置都保持不变。

Diff Viewer、Time Travel 或自动布局预览打开期间,任何操作都无法打开或关闭资源管理器:

  • 已打开的资源管理器会被隐藏,它们关闭后会重新显示。
  • 工具栏按钮会变暗且不起作用。
  • 快速搜索中不会列出 Toggle Explorer。
  • 快捷键交给浏览器或宿主处理,参见浏览器的查找栏。

Diff Viewer 也以同一类树列出其变更,参见 Diff Viewer。

用 Alt + Z (Windows/Linux) 或 ⌥ + Z (Mac) 开启禅模式会隐藏已打开的资源管理器,但不会将其关闭;关闭禅模式后,资源管理器会重新出现。
在禅模式中,快捷键和这两个 Toggle Explorer 条目仍会打开资源管理器并定位到其搜索,禅模式保持开启。此时资源管理器占满编辑器的整个高度,因为顶部工具栏已经隐藏;关闭禅模式后,它仍保持显示。再次开启禅模式会再次将其隐藏。

只要面板在持有键盘焦点时消失,无论是被关闭、隐藏还是让位,键盘焦点都会回到编辑器。

树​

标题栏显示 Explorer,其中有两个按钮:Collapse All,以及用于关闭资源管理器的 x。标题栏下方是搜索(参见查找与替换),再下方是树。

顶层依次有三个文件夹:Tables、Table Groups 和 Memos。每个表下方各有自己的 Columns、Indexes 和 Foreign Keys 文件夹。
空的文件夹不会显示,因此空白的图中不会显示任何行。当 View Option → Table Groups 隐藏了表分组时,Table Groups 也不会显示;当 View Option → Memos 隐藏了备注时,Memos 同样不会显示。
文件夹行显示文件夹图标、文件夹名称,以及末端直接位于其下的行数,因此 Tables 旁边的计数就是图中表的数量。

表按名称排列,不区分大小写,同名的表保持文档中的顺序。表分组以同样的方式排列,每个分组下的表也是如此。表的列保持该表自身的顺序,表的索引、外键以及备注则保持文档中的顺序。
树会随图的变化而更新,无论变化来自画布上的编辑、Undo 或 Redo、导入,还是协作者或编码智能体,因此重命名表会让其所在的行移动位置。

各类行显示的内容:

  • 表:表格图标及其名称。
  • 列:主键列或外键列显示钥匙图标,其颜色与表自身的键单元格为主键、外键或两者兼有时所用的颜色相同;其他列显示列表图标。然后是列名,以及以淡色显示的数据类型,后跟 PK、FK 或两者,例如 id BIGINT PK 或 user_id BIGINT FK。
  • 索引:索引图标及其名称。然后以淡色显示:唯一索引先显示 UNIQUE,再按索引中的顺序在括号中列出其列,降序的列后面带有 DESC,例如 orders_user_idx UNIQUE (user_id DESC, total),或者仅为 (total)。
  • 外键:只列在子表(即包含外键列的表)下,并且只在父表位于图中时列出。其钥匙图标采用连接线的颜色:识别关系为主键与外键的颜色,其他关系为外键的颜色。它先显示子表的键列,以逗号分隔,然后以淡色显示 → 以及父表和父表的列,例如 user_id → users(id)。
  • 表分组:一个分组颜色的圆点(没有颜色的分组为灰色)及其名称。其中的表按名称列在它下方,每一行都会跳转到对应的表。没有表的分组没有可展开的内容。
  • 备注:便签图标以及备注的第一行。

名称为空,或备注的第一行为空时,显示为斜体的 unnamed。
面板较窄时,淡色的文本会先于名称被 … 截断。将指针悬停在名称或其淡色文本上即可查看完整内容。

起初只有 Tables 处于展开状态。点击文件夹行,或在其上按 Enter 或 Space,即可将其折叠或展开。
行首的箭头会折叠或展开该行,而不会跳转到任何位置。每个表行都有箭头,即使该表下没有任何内容。→ 和 ← 同样可以折叠和展开,参见资源管理器中的按键。
Collapse All 每按一次折叠一层,即当前显示的已展开行中最深的一层,因此连续按下会自下而上逐层折叠。到达顶层的那一次按下会折叠所有行,包括位于已折叠行之下的行,只留下顶层文件夹。
编辑、Undo 和 Redo,以及来自协作者或编码智能体的变更,都不会改变折叠状态。

跳转到行​

点击某一行,或在键盘焦点位于该行时按 Enter 或 Space,即可跳转到该行在 ERD 画布上所代表的对象。文件夹行只会折叠或展开,方向键也只在树中移动。

  • 表行,或列在分组下的表,会单独选中该表并将其移到最前面。单元格焦点会移到表名上,除非焦点原本就在该表中。
  • 列行会单独选中其所在的表,并把单元格焦点放在该列的列名上。
  • 索引行会像表行一样选中其所在的表。索引本身不会被单独标出;索引在表属性中编辑。
  • 外键行会把关系两端的表一起带入视野;如果两者相距太远、无法同时显示,则只带入子表。它会单独选中子表及其外键列,单元格焦点位于其中第一列上,并点亮该关系的连接线,参见读懂连接线。
  • 表分组行会以标题栏为准把分组的框带入视野,单独选中该分组,并把它连同其中的表一起移到最前面。
  • 备注行会单独选中该备注并将其移到最前面。

视图按所有跳转共用的规则移动:缩放级别永远不变,只有当跳转的目标没有显示得足够清楚时,画布才会滚动,参见跳转的落点。
如果表属性已打开,跳转到行会先将其关闭;跳转永远不会开始或完成正在绘制的关系。
查找输入框中有文本时,自身名称包含匹配项的行,或显示注释或备注摘录的行,会改为跳转到该匹配项,参见跳转到匹配项。

点击之后,键盘焦点仍留在树中,因此在按 Escape 或点击画布之前,Delete、Backspace 和其他编辑按键都不会作用于新的选中对象,参见资源管理器中的按键。

资源管理器中的按键​

整棵树在 Tab 顺序中只占一个位置,没有任何行时会被跳过。
用 Tab 进入树时,焦点会落在键盘焦点上次所在的行;如果没有,则落在当前匹配项所在的行,或完全可见的第一行,并将该行滚动到可见位置。键盘焦点所在的行与指针下方的行绘制方式相同。

在树中:

  • ↑ 和 ↓ 移动一行,到达第一行和最后一行时停止,而不会循环。Home 和 End 跳到第一行和最后一行。
  • → 会展开已折叠的行,或移到已展开行的第一个子项。← 会折叠已展开的行,或退回到其父项。在从右到左书写的显示语言中,两者互换。
  • Enter 和 Space 的作用与点击相同:跳转到该行,或折叠或展开文件夹,参见跳转到行。
  • 输入字母不会跳转到某一行。

在资源管理器中的任何位置按 Escape,无论是在树中、查找或替换输入框中,还是在其某个按钮上,都会把键盘焦点交还给画布。资源管理器保持打开,选中状态保持不变。
用于结束输入法组字的 Escape 只会结束组字。无论是在资源管理器中还是在画布上按下,Escape 都永远不会关闭资源管理器。

键盘焦点位于资源管理器中时,少数编辑器快捷键仍然有效,参见快捷键:

  • Ctrl + F (Windows/Linux) 或 ⌘ + F (Mac) 的作用与在画布上相同:关闭资源管理器;如果表属性在其旁边打开,则关闭表属性并把光标放到查找输入框中,参见打开与关闭。
  • Ctrl + K (Windows/Linux) 或 ⌘ + K (Mac) 用于开关快速搜索。
  • Undo 和 Redo 撤销与重做的是图,而不是输入框中的文本。
  • Zoom In、Zoom Out 和 Zoom Reset 用于缩放画布。

其他所有编辑器快捷键都留在资源管理器中,方向键、Tab、Enter、Space、Home、End 以及输入法组字期间按下的任何按键也是如此。
它们都不会传到画布:Delete 和 Backspace 永远不会删除选中的对象,Alt + N (Windows/Linux) 或 ⌥ + N (Mac) 不会添加表,先按 T 再按 G 也不会创建分组。在输入框中,它们作为普通文本输入框的按键使用:Ctrl + A (Windows/Linux) 或 ⌘ + A (Mac) 选中输入框中的文本,Delete 和 Backspace 删除文本,Space 输入空格。Tab 在资源管理器的按钮、输入框和树之间移动焦点。
查找输入框和替换输入框自身的按键,参见搜索输入框中的按键。
编辑器未绑定的按键,例如宿主自己的保存或命令面板快捷键,照常传给宿主。

资源管理器旁的对话框​

表属性、主题构建器、Display Language 选择器、Export image 对话框以及映射列在打开时都会让资源管理器保持打开。

  • 表属性会在资源管理器旁边的画布中央打开,并且只让画布变暗。资源管理器仍可使用:选择某一行会先关闭表属性,再跳转到该行。
  • Export image 和映射列会让整个编辑器变暗,包括工具栏和资源管理器。资源管理器在变暗区域下方保持打开,在那里点击会关闭该对话框,与点击变暗区域的任何位置相同;此时映射列会直接关闭,不会映射任何列。
  • 在从左到右书写的显示语言中,主题构建器和 Display Language 选择器会紧挨着资源管理器打开,而不会覆盖在它上面;如果在它们显示期间资源管理器打开或关闭,它们也会随之移动。在从右到左书写的语言中,它们保持在右侧的位置。在资源管理器中按下会关闭它们,与在它们之外除工具栏以外的任何位置按下相同。

用快捷键或 Toggle Explorer 条目打开搜索时,这五个都会关闭,其中映射列会直接关闭,不会映射任何列。
快速搜索同样会让资源管理器保持打开,此时 Escape 只会关闭命令面板。

只读编辑器​

在 readonly 编辑器中,资源管理器的使用方式与在其他编辑器中相同:提示相同的工具栏按钮、快捷键、两个 Toggle Explorer 条目、树、折叠、Collapse All,以及跳转到行,跳转时会照常选中目标。其标题同样为 Explorer。
其搜索只能查找,参见查找与替换中的只读编辑器。