跳到主要内容

快速搜索

快速搜索是编辑器的命令面板。
它会列出当前标签页可用的命令。在搜索开头输入 #、@ 或 :,则会改为搜索图,并跳转到表、列,或者注释或备注。

通过 Ctrl + K (Windows/Linux) 或 ⌘ + K (Mac) 打开,也可以点击工具栏的 Search。
再次按下同一快捷键即可关闭,按 Esc 或点击面板外部也可关闭。打开时会关闭表属性面板和主题构建器,在编辑表的单元格或备注时则无法打开。

工具栏中紧跟在 Search 之后的按钮打开的是查找与替换面板,而不是命令面板。
打开命令面板时,查找与替换面板会保持打开,此时按 Esc 只会关闭命令面板。在命令面板中按 Ctrl + F (Windows/Linux) 或 ⌘ + F (Mac) 会关闭命令面板并打开查找与替换面板,参见打开与关闭。
嵌入编辑器的宿主可以将快速搜索绑定到其他按键,此时 Search 的提示会显示该按键,参见快捷键。

用 ⌘ + K 打开命令面板,再用 #pay 跳转到表,用 @price 跳转到列,用  跳转到表注释

搜索与导航​

输入文字即可过滤列表。每次按键都会对当前显示的整个列表重新搜索,因此删除字符,或者用新词替换没有找到任何结果的词,都会让匹配的条目重新出现。
匹配为模糊匹配,涵盖条目名称及其旁边显示的关键字。例如在 Import 子菜单中,sdl 可以找到 GraphQL,dbdiagram 可以找到 DBML,azimutt 可以找到 AML。轻微的拼写错误仍能找到对应的条目,例如 tabel 可以找到 New Table,imprt 可以找到 Import;但与输入内容只是大致相似的条目会被排除:memo 只会列出 New Memo。名称或关键字中包含输入内容(不区分大小写)的条目总会被列出,模糊匹配漏掉的这类条目排在模糊匹配的结果之后。条目中凡是包含输入内容的地方都会高亮显示,不区分大小写。
使用 ↑ 和 ↓ 在列表中移动,到达两端时会循环,按 Enter 执行高亮的条目。带有独立快捷键的命令会在右侧显示该快捷键。输入法仍在组字时(例如正在输入一个韩文音节),↑、↓ 和 Enter 归输入法处理,既不会移动高亮,也不会执行条目。

Database、Import 或 Auto Layout 之类的条目会打开子菜单,其条目会替换当前列表,搜索框也会被清空。过滤始终只作用于当前显示的列表,并且无法返回上一级,因此需要关闭并重新打开命令面板才能重新开始。在子菜单中,#、@、: 和 ? 只是普通文本,而不是前缀。

命令面板列出的内容​

列表内容取决于当前所在的标签页。每个标签页的列表都以 Tab 开头,用于切换到 Entity Relationship Diagram、Visualization、Schema SQL、Generator Code 或 Settings。当前所在的标签页不会出现在其中,Generator Code 就是工具栏中标注为 Code Generator 的标签页。

在 ERD 标签页中,列表包含数据库厂商、Import 与 Export、New Table 与 New Memo、四种关系类型以及 Auto Layout。这里不会列出表,输入 # 即可跳转到表。
除仅存在于右键菜单中的 Diff Viewer 外,这些条目执行的命令与画布右键菜单相同。此处的 Export 只提供 json 和 Schema SQL,因此导出 PNG 需要使用画布右键菜单。
各格式的作用参见导入与导出文件,数据库选择的影响参见表相关功能。

在 Schema SQL 标签页中,列表同样包含数据库厂商,以及 Bracket。Bracket 用于设置生成的 SQL 中包裹表名、列名、约束名和索引名的引号字符,可选 SingleQuote、DoubleQuote、Backtick,或选择 None 表示不加任何引号。

在 Code Generator 标签页中,列表包含目标语言、Table Name Case 和 Column Name Case。各目标生成的内容参见代码生成。

在 Visualization 和 Settings 标签页中,除 Find and Replace 外,列表只包含 Tab 这一个命令。

每个标签页的列表都以 Find and Replace 结尾,它会在右侧显示自己的快捷键 Ctrl + F (Windows/Linux) 或 ⌘ + F (Mac)。输入 find、replace 或 rename 都可以找到它。
执行该条目会关闭命令面板,切换到 ERD 标签页并打开查找与替换;如果该面板已经打开,则会把光标放回其查找输入框。Diff Viewer、Time Travel 或自动布局预览打开期间,列表中不会出现该条目。

搜索图​

在搜索开头输入前缀,即可搜索图而不是命令:# 搜索表,@ 搜索列,: 搜索注释和备注,? 列出所有前缀。前缀在任意标签页中都有效。只有作为第一个字符时它才算作前缀,其前面的空格会被忽略。前缀后面的空格可有可无,因此 #users 和 # users 是同一个搜索,日文或中文输入法输入的全角 #、@、: 和 ? 同样有效。
在顶层且输入框为空时,输入框下方会有一行显示这四个前缀,点击其中一个即可输入它。前缀生效期间,输入框右端会显示其搜索范围:Tables、Columns、Comments & memos 或 Help。删除前缀即可回到命令列表。

# 列出所有表,每个表旁边显示 Table,名称为空的表会显示为 unnamed。# 后面没有内容时,表按名称排序。# 后面的文本只与表名匹配,与上文一样是模糊匹配,名称中包含该文本的表排在前面。

@ 按名称列出列,每一列旁边显示它所在的位置,例如 users.email · Column。@ 后面的文本必须出现在列名中,不区分大小写;这种匹配不是模糊匹配。第一个 . 之前的文本会把搜索范围缩小到名称中包含该文本的表:@users.em 会在名称包含 users 的表中列出包含 em 的列,@users. 会列出这些表的列,@.em 则搜索所有表。@ 后面没有内容时,会列出所有列,不做过滤。

: 列出表注释、列注释和备注,从不列出名称。每一行显示匹配处前后的文本摘录,旁边显示 users · Table comment、users.email · Column comment 或 Memo。: 后面的文本必须出现在注释或备注中,与 @ 一样不区分大小写。: 后面没有内容时,会列出所有非空的注释和备注。

@ 和 : 按文档中保存的顺序列出各行:逐个表列出,每个表的注释排在其各列之前,各列按列的顺序排列,备注排在最后。

? 列出 Tables、Columns 和 Comments & memos,? 后面的文本会对它们进行过滤。选择其中一项会把输入内容替换为对应的前缀,并保持命令面板打开。

带前缀的搜索没有找到任何结果时,列表为空,也不会显示任何提示信息。

选择表、列、注释或备注会关闭命令面板,如果当前位于其他标签页,还会切换到 ERD 标签页。
表会被滚动到画布左上角附近,如果查找与替换面板已打开,则滚动到紧邻该面板右侧的位置,然后该表会被单独选中并移到最前面,表名会获得焦点,除非焦点原本就在该表中。
列、注释或备注的显示方式与查找与替换跳转到匹配项时相同:只有当表、列所在的行或备注没有完全显示在视野中时,画布才会滚动。随后,备注会被单独选中并移到最前面;表则会被单独选中并移到最前面,焦点落在包含该文本的单元格上,如果注释被表显示选项隐藏,则焦点落在其旁边的名称上。
任何跳转都不会开始或完成正在绘制的关系。

带前缀的列表最多显示 100 行。如果这一上限漏掉了某个按原样包含所输入文本的匹配项,这 100 行之后还会多出一行:Show all N matches in Find and Replace 或 Show 1 match in Find and Replace。选择该行会以相同的文本打开查找与替换,并且只开启该前缀所对应的文本类型。@table.column 只会传递列的部分,因此面板以及 N 涵盖的是所有表的列,参见从快速搜索打开。
前缀之后,或 @table. 的 . 之后没有输入任何内容时,列表在 100 行处截止,也不会提供这一行。
如需使用 Match Case、Match Whole Word 或 Use Regular Expression,或者要替换文本,请直接使用查找与替换。

没有匹配的命令时​

在顶层且没有前缀时,如果列出的命令中没有任何一个包含输入的内容(不区分大小写),命令之后会出现三行:Search tables for "…"、Search columns for "…" 和 Search comments & memos for "…",每一行都以对应的前缀作为图标。选择其中一行会在输入内容前加上该前缀,例如 users 会变为 #users,命令面板则保持打开并显示相应的结果。
如果搜索没有找到任何命令,列表上方会显示 No commands match,此时列表中只有这三行。如果只找到了不包含该文本的命令,这些命令会排在前面:在 ERD 标签页中,tables 会在这三行之前列出 New Table 和 Database。
在子菜单中,没有找到结果的搜索会让列表为空,也不会显示任何提示信息。

使用韩文搜索​

包含韩文的搜索还会按字母进行匹配,在命令、子菜单以及所有前缀下均是如此。
韩文输入法组字过程中的每一步都能持续找到你要输入的那一行,因此 ㅅ、사、상、사요 和 사용 都能找到 사용자。只由初声辅音组成的搜索会与各音节的初声匹配,并跳过空格:ㅅㅇㅈ 可以找到 사용자,ㅈㅁ 可以找到 주문 내역。Windows 输入法将连续输入的两个初声组合而成的复合辅音(例如 ㅄ)会按两个字母(ㅂㅅ)计算,而 ㄲ 之类的双辅音仍算作一个字母。以分解形式保存的文本(例如 macOS 的文件名)会按组合后的形式进行匹配。
整段文本逐字母或逐初声完整拼出搜索内容的行排在最前,其次是以搜索内容开头的行,然后是包含它的行。在 @ 和 : 下,按原样包含搜索内容的行排在所有这些行之前,并按文档顺序排列。高亮覆盖整个音节,因此 상 会点亮 사용자 中的 사용。
查找与替换只按输入的原样匹配文本,因此仅凭字母找到的行(例如 ㅅㅇㅈ 和 사요 找到的 사용자)永远不会带出 Show all … in Find and Replace 行。