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