搜索语法
SwiftList 的搜索框支持的不只是普通输入。下面每一种操作符都可以和普通模糊词混合使用在同一条查询里。
模糊匹配(默认)
输入名称的任意一部分即可命中,只要字符按顺序出现在文件/文件夹名的任意位置即可,不需要输入连续的子串:
| 输入 | 命中 |
|---|---|
swlst | SwiftList.exe |
report | Q3-report-final.docx |
在设置 → 通用 → 系统 → 启用模糊匹配里关掉这个开关后,普通查询词(不带任何操作符)就必须作为连续子串出现——abc 不再匹配 a-b-c。下面表格里的每一种操作符不受这个开关影响,行为完全一样;开关只改变普通词本身的要求。' 操作符不管这个开关开没开,都会对单个词翻转精确性,所以你可以在一条整体走精确匹配的查询里塞进一个模糊词,或者反过来,而不用去改这个全局开关。
多个词
用空格分隔多个词。每个词都会进一步缩小结果范围——但不要求这些词按你输入的顺序出现:
report finalfinal-Q3-report.docx 和 Q3-report-final.docx 都能匹配。
大小写敏感
- 全部小写的查询不区分大小写:
myfile可以匹配MyFile、MYFILE等。 - 只要查询里出现任意大写字母,该词就变为大小写敏感:
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:report 和 d: 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 没有一个通用的"自定义别名/宏"系统。最接近的等价功能是收藏夹:把文件夹、文件或网址收藏为一个自定义显示名,之后就能用这个名字搜到它(结果里会带 ★ 标记)。如果你想要的其实是"自定义一个关键词来启动某个程序",可以看看自定义命令。