搜尋語法
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 沒有一個通用的"自訂別名/宏"系統。最接近的等價功能是收藏夾:把資料夾、檔案或網址收藏為一個自訂顯示名,之後就能用這個名字搜到它(結果裏會帶 ★ 標記)。如果你想要的其實是"自訂一個關鍵詞來啓動某個程式",可以看看自訂命令。