Logo

Zim Wiki 中文文档

ZimWiki中文使用和操作说明

搜索

在zim中有两种搜索方式:在页面内搜索,称为查找,以及跨多个页面搜索,称为搜索

查找

"搜索->查找..."菜单项会在页面底部触发一个搜索框。通过在这里输入单词,您可以在当前页面中查找该单词的出现位置。您可以使用<Alt>N<Alt>P<Ctrl>G<Shift><Ctrl>G快捷键来跳转到下一个/上一个出现位置。如果找不到您输入的单词,搜索框会变红,按钮会变为不可用状态。

区分大小写复选框使搜索区分大小写。高亮复选框切换缓冲区中所有结果的高亮显示。

查找和替换

"搜索->替换..."菜单项会触发当前页面中的"查找和替换"对话框。"下一个"和"上一个"按钮可用于跳转到下一个或上一个出现位置而不替换。"替换"按钮可用于仅替换一个出现位置。"全部替换"按钮可用于一次性替换当前页面中的所有出现位置。

区分大小写复选框切换大小写敏感性。默认情况下,搜索不区分大小写。但在查找名称或缩写时,匹配大小写可能会很有用。

整词匹配复选框切换是否包含部分单词匹配。这在寻找相当短的单词时特别有用。

正则表达式复选框切换高级搜索和替换,其中可以使用"正则表达式"来匹配文本模式。启用此选项时,替换字符串中的转义字符也将被展开,并且模式中的组可以在替换字符串中被引用。有关正则表达式语法的详细信息,请参阅Python文档

高亮复选框切换缓冲区中所有结果的高亮显示。

搜索

"搜索->搜索..."菜单项会触发搜索对话框弹出。此对话框允许您搜索包含特定单词的页面。您可以同时打开多个搜索对话框。

您不仅可以搜索多个单词,而且zim还允许使用更精细的搜索查询。有关此对话框支持的高级用法查询语法,请参见下文。

普通搜索会遍历笔记本的所有页面。特殊搜索,如搜索链接或页面名称,只搜索索引的一部分,相应地更快,这对于包含数百至数千页面的大型笔记本可能很重要。

反向链接

这是搜索菜单中的最后一项。作为特殊情况,您可以搜索页面名称。不是进行"全文搜索",而是执行缓存查找并显示一个列表,其中包含链接到搜索页面的页面。在这种情况下,页面名称被定义为包含":"字符的单词。

当您打开"搜索->搜索反向链接..."菜单项时,您会得到与搜索相同的搜索对话框,但当前页面的名称已经填入。

作为替代方案,您可以点击状态栏中的"反向链接"区域,这将弹出一个包含所有指向当前页面的反向链接的菜单。

命令行用法

您也可以使用命令行参数执行搜索,例如:

zim --search Notes "tag:home and tag:foo"

这将打印包含tags "@home"和"@foo"的所有页面的列表。

搜索查询语法

本节描述可在搜索对话框中使用的查询语法。

摘要

操作符:
+ AND and && 页面必须包含所有词语
OR or || 页面必须包含任一词语
- NOT 页面不能包含此词

关键词: 下面有关键词搜索的详细信息

Content: #内容:
Name: #名称:
Section: #部分:
Links: #链接:
LinksFrom: #链接来源:
LinksTo: #链接目标:
Tag: #标签:

详情

布尔运算符AND NOT OR为您提供了极大的搜索灵活性。如果您有大型、长期的笔记本,学习这些操作符是值得的。

AND是默认操作符:它通过规定2个或更多术语出现在同一页面上,来缩小您的搜索范围。

和大多数搜索程序一样(如Google和Yahoo),默认情况下会隐含逻辑AND:如果您在搜索对话框中输入几个单词,zim会查找在页面名称或页面内容中包含所有这些单词的页面。对于多个单词,假定隐含AND运算符。如果您搜索同时包含单词foo和bar的页面,以下查询都是等效的:

foo bar
foo AND bar
foo and bar
foo && bar
+foo +bar

要从查询中排除包含特定单词的页面,请在单词前加上"-"或NOT运算符。它是AND的反义词。因此,要查找包含"foo"但不包含"bar"的页面,请尝试以下之一:

foo -bar
+foo -bar
foo NOT bar
foo AND NOT bar

对于既不包含"foo"也不包含"bar"的页面:

-foo - bar
NOT foo NOT bar
NOT foo AND NOT bar

OR在您不确定文本中出现了哪个确切单词时很有帮助。您可以输入可能出现在您正在寻找的页面上的具有相似含义的单词。
在我们的示例中,OR运算符用于查找包含"foo"或"bar"或两者的页面,因此要查找匹配"foo"或"bar"的任何页面,以下运算符会产生相同的结果:

foo OR bar
foo or bar
foo || bar

当组合运算符时,AND优先于OR。因此,像这样的查询:

foo OR bar AND dus

会返回包含"dus"以及"foo"或"bar"或两者的所有页面。

要匹配短语,即包含空格(空白)的字符串,或匹配看起来像运算符的内容,您需要将字符串放在双引号之间。因此,当寻找字面字符串"foo bar"和字面"+1"时,使用:

"foo bar" and "+1"

要匹配部分单词,可以使用"*"作为通配符。因此,以下查询

Some*

将匹配所有以"Some"开头的单词,如"Someday"、"Someplace"等。

关键词搜索:
到目前为止,我们只是在页面内容和页面名称中搜索单词。如果您想要更多控制,可以使用关键词来指定特定的页面属性。这些搜索限制了搜索范围,它们不仅更具体,而且在某些情况下也比普通搜索快得多。页面定义字段的关键词是:

Content: #内容:
Name: #名称:
Section: #部分:
Links: #链接:
LinksFrom: #链接来源:
LinksTo: #链接目标:
Tag: #标签:

例如,要仅搜索页面名称,您可以使用:

Name: *foo*

此查询仅返回页面名称中包含"foo"的页面,而不查看其内容。

"Content:"关键词仅匹配页面内容,不包括页面名称等。

Content: foo AND NOT Name: *foo*

将查找在页面内容中某处含有foo但在页面名称中不包含"foo"的页面。

"Section:"关键词将搜索限制在特定页面名称的子页面。这允许搜索完整笔记本的子集。

假设在Home下,您有页面"photo"作为顶级页面,下面有多个页面,您只想搜索笔记本的photo部分。您想要查找有关景深或其缩写DoF的所有条目,因此您输入以下搜索:

Section: Home:photo "depth of field" or dof

"Links"和"LinksFrom"关键词返回特定页面链接的所有页面,而"LinksTo"返回链接到特定页面的所有页面,用于查找反向链接。

要排除所有链接到":Done"的页面,请尝试:

NOT LinksTo: ":Done"

一个复杂的例子是查找":Date"部分中链接到":Planning"的任何页面。

section: Date and linksto: Planning

关键词"Tag"可用于搜索特定标签,如:


Tag: home

请注意,对单个单词如"@home"的简单搜索将自动转换为"Tag: home"

目录(K)
链接(B)
任务(O)