Skip to content

搜索语法

SwiftList 的搜索框支持的不只是普通输入。下面每一种操作符都可以和普通模糊词混合使用在同一条查询里。

模糊匹配(默认)

输入名称的任意一部分即可命中,只要字符按顺序出现在文件/文件夹名的任意位置即可,不需要输入连续的子串:

输入命中
swlstSwiftList.exe
reportQ3-report-final.docx

设置 → 通用 → 系统 → 启用模糊匹配里关掉这个开关后,普通查询词(不带任何操作符)就必须作为连续子串出现——abc 不再匹配 a-b-c。下面表格里的每一种操作符不受这个开关影响,行为完全一样;开关只改变普通词本身的要求。' 操作符不管这个开关开没开,都会对单个词翻转精确性,所以你可以在一条整体走精确匹配的查询里塞进一个模糊词,或者反过来,而不用去改这个全局开关。

多个词

用空格分隔多个词。每个词都会进一步缩小结果范围——但不要求这些词按你输入的顺序出现:

report final

final-Q3-report.docxQ3-report-final.docx 都能匹配。

大小写敏感

  • 全部小写的查询不区分大小写:myfile 可以匹配 MyFileMYFILE 等。
  • 只要查询里出现任意大写字母,该词就变为大小写敏感:MyFile 只匹配 MyFile,不匹配 myfile

操作符

前缀/后缀示例效果
(无)report默认的模糊匹配,命中名称中任意位置。
!!temp排除——过滤掉名称中含有 temp 这个精确子串的结果(这一项不走模糊匹配)。
''report对这一个词翻转精确性——模糊匹配开启(默认)时变成精确子串匹配;在设置里关闭模糊匹配后,这个词反而会变回模糊匹配。
'...''final report'精确匹配,且要求词边界(不会命中被包在更长单词内部的情况)。
^^IMG前缀匹配——名称必须以 IMG 开头。
$.pdf$后缀匹配——名称必须以 .pdf 结尾。
^...$^readme.md$完全相等——名称必须正好是 readme.md。仅当两者包住同一个词时成立;分别写在不同的词上时,它们各自仍然只是前缀和后缀过滤。
|report | summary——匹配管道符任意一侧。

这些操作符可以自由组合,例如 ^IMG !.png$ 2024 可以找到以 IMG 开头、包含 2024、但不是 PNG 的文件。

"或"查询里,一个结果名称中每一个真正匹配到的词都会高亮,不只是最先匹配到的那一个——所以 report | summary 如果结果名称里同时包含这两个词,两个词都会被高亮。

粘贴多行文本

粘贴包含多行的文本——比如从表格或文本文件里一行一个文件名复制过来的内容——SwiftList 会自动把它们折叠成一条 OR 查询,而不是原样粘贴:

123
456
678

粘贴进去会变成 123 | 456 | 678,同时匹配这三者中的任意一个。空行会被跳过。普通的单行粘贴不受影响。

指定盘符

在查询开头输入盘符加冒号,即可把搜索范围限定在该盘,后面照常输入关键词:

d: report

只在 D: 盘搜索。

空格可以省略:d:reportd: report 含义相同。

路径模式

如果查询里包含路径分隔符(\/),SwiftList 会切换到路径模式,按完整路径而不仅仅是名称来匹配——适合直接跳转到已知的文件夹:

D:\Projects\SwiftList

以分隔符结尾(D:\Projects\)则会搜索该文件夹内部的内容。

按文件夹名过滤

在查询末尾加上 ::<文字>,可以额外要求命中结果自身的名字或其某一层上级文件夹匹配 <文字>(模糊匹配,包括拼音,跟其他地方的匹配方式完全一致):

1080 ::wallpapers

可以找到名字里带 1080、且位于某个匹配 wallpapers 的文件夹下面的文件,不需要知道或输入完整路径。多个过滤条件可以用逗号组合:report ::2024,:final

词描述的是文件夹,不是文件本身

如果按文件/文件夹名匹配没能填满结果,SwiftList 会自动补上一批,额外允许词命中上级文件夹——不需要任何特殊语法:

d01j dcj

即使 dcj 从未出现在文件自己的名字里,也能找到一个名为 d01j、位于名为(或别名为)dcj 的文件夹下的文件。这只是用文件上层的文件夹名,补全查询里没被文件名本身覆盖的部分——至少要有一个词仍然命中文件名本身,而且只在按名称的普通搜索没填满结果时才会触发;补上来的结果一律排在它们后面,不会与之混排,所以永远不会顶掉或打乱普通搜索本来就能找到的结果。上级文件夹的匹配方式和文件名完全一样,所以拼音在这里同样能命中中文文件夹名。

单次搜索绕过排除规则

在查询开头加 *,可以让这一次搜索绕过你自己设置的排除规则—— ExcludedPaths、忽略的 glob、忽略的正则——而不需要改动设置本身:

*node_modules

* 本身会在匹配之前被剥离掉,不会被当成搜索文字的一部分。这只能找回已经被索引过的结果;一个从未被索引过的文件夹(网络盘或 WSL 上被排除的文件夹)依然不会出现。隐藏/系统文件不受影响,始终照常过滤——* 只影响你自己配置的排除规则。只打 *、后面还没打内容时,会显示"继续输入以搜索"这样的提示,而不是"无搜索结果",因为这时候实际上还没有真正搜索过。

结果类型触发符

可选功能,默认没有配置,需要自己指定字符。如果你在设置 → 通用 → 快速搜索窗口 → 结果类型优先级里给某个结果类型配了触发符,把这个字符打在快速窗口查询的最前面,就只会显示这个类型的结果——应用程序、系统设置、某一个具体的文件过滤器、某个插件自己的条目,或者纯文件——其他类型全部隐藏:

;vs

如果 ; 是应用程序这个类型配置的触发符,这样搜就只会在应用程序里找"Visual Studio",不管其他类型的文本本来匹配得多好都不参与竞争。只打触发符、后面还没打内容时,会显示一个说明具体类型的提示,而不是"无搜索结果"。历史记录和收藏夹不受影响——不管有没有触发符,它们始终排最前。默认没有配置任何触发符,去通用设置里可以自行设置。

中文文件名:拼音别名

包含中文字符的文件名会自动支持拼音搜索,无需任何配置:

  • 全拼:输入 chongqing 可以匹配名为"重庆"的文件。
  • 首字母:输入 cq 同样可以匹配"重庆"(每个音节的首字母)。
  • 多音字(有多种读音的汉字)会为每种常见读音都生成别名,所以不管你想到的是哪种读音,通常都能命中。

这是由内置的别名插件负责实现的——如果想确认它是否启用,可以到设置 → 插件里查看。

收藏夹,而非自定义别名

SwiftList 没有一个通用的"自定义别名/宏"系统。最接近的等价功能是收藏夹:把文件夹、文件或网址收藏为一个自定义显示名,之后就能用这个名字搜到它(结果里会带 ★ 标记)。如果你想要的其实是"自定义一个关键词来启动某个程序",可以看看自定义命令