Skip to content

Search Syntax

SwiftList's query box supports more than plain typing. Every operator below can be combined with plain fuzzy terms in the same query.

Fuzzy matching (default)

Type any part of a name and SwiftList finds it as long as the characters occur in order, anywhere in the file/folder name — you don't need to type a contiguous substring:

You typeMatches
swlstSwiftList.exe
reportQ3-report-final.docx

Turn this off under Settings → General → System → Enable fuzzy matching and a bare term (no operator) instead has to appear as a contiguous substring — abc no longer matches a-b-c. Every operator in the table below keeps working exactly the same either way; the setting only changes what a bare term requires. The ' operator flips exactness for one term regardless of the setting, so you can drop a fuzzy word into an otherwise exact query, or an exact word into an otherwise fuzzy one, without changing the setting itself.

Multiple words

Separate words with a space. Each word narrows the result set further — it does not require the words to appear in the same order you typed them:

report final

matches final-Q3-report.docx just as well as Q3-report-final.docx.

Case sensitivity

  • An all-lowercase query is case-insensitive: myfile matches MyFile, MYFILE, etc.
  • A query with any uppercase letter becomes case-sensitive for that term: MyFile only matches MyFile, not myfile.

Operators

Prefix/SuffixExampleEffect
(none)reportFuzzy match anywhere in the name (default).
!!tempExclude results whose name contains the exact substring temp (this one is not fuzzy).
''reportFlips exactness for this one term — exact substring instead of fuzzy while fuzzy matching is on (the default); back to fuzzy for this term while fuzzy matching is turned off in Settings.
'...''final report'Exact match anchored to word boundaries (won't match inside a larger word).
^^IMGPrefix match — the name must start with IMG.
$.pdf$Suffix match — the name must end with .pdf.
^...$^readme.md$Equals — the whole name must be exactly readme.md. Only when both wrap the same word; on separate words they stay independent prefix and suffix filters.
|report | summaryOR — match either side of the pipe.

You can mix these freely, e.g. ^IMG !.png$ 2024 finds files starting with IMG, from 2024, that are not PNGs.

For an OR query, every term that actually matches a given result is highlighted in its name — not just whichever term happened to match first — so report | summary highlights both words in a result whose name contains them both.

Pasting multiple lines

Paste text containing several lines — e.g. filenames copied one per line from a spreadsheet or text file — and SwiftList automatically folds them into an OR query instead of pasting them as-is:

123
456
678

pastes as 123 | 456 | 678, matching any of the three. Blank lines are skipped. A normal single-line paste is unaffected.

Targeting a drive

Start the query with a drive letter followed by a colon to restrict results to that drive, then continue typing your search as normal:

d: report

searches only on the D: drive.

The space is optional: d:report means the same thing as d: report.

Path mode

If your query contains a path separator (\ or /), SwiftList switches to path mode and matches against full paths instead of just names — useful for jumping straight to a known folder:

D:\Projects\SwiftList

A trailing separator (D:\Projects\) searches the contents of that exact folder.

Filtering by folder name

Add a trailing ::<text> to a query to additionally require that the result's own name or one of its ancestor folders matches <text> (fuzzy, same matching — including pinyin — as everywhere else):

1080 ::wallpapers

finds files with 1080 in the name that live somewhere under a folder matching wallpapers, without needing to know or type the exact path. Combine multiple filters with a comma: report ::2024,:final.

When a term describes the folder, not the file

If matching by file and folder names alone doesn't fill the results, SwiftList tops them up by additionally letting terms match ancestor folders — no special syntax needed:

d01j dcj

finds a file named d01j that lives in a folder named (or aliased to) dcj, even though dcj never appears in the file's own name. This only fills in the rest of a query from the folders above a file — at least one term still has to match the file name itself, and it only runs when an ordinary name-only search has not filled the page. What it finds is appended after those results rather than mixed into them, so it can never displace or reorder a result an ordinary search would already have found. Ancestor folders are matched the same way file names are, so pinyin reaches a Chinese folder name here too.

Start a query with * to search past your own exclusion rulesExcludedPaths, ignored globs, and ignored regexes — just for that search, without changing your settings:

*node_modules

The * itself is stripped before matching, so it's never treated as part of the search text. This only reveals results that are already indexed; a folder that was never indexed in the first place (an excluded folder on a network or WSL drive) still won't appear. Hidden/system files stay filtered either way — this only affects your own exclusion-rule configuration. Typing just * with nothing after it yet shows a "keep typing to search" prompt rather than "No Search Results", since no search has actually run yet.

Result type trigger

Optional, and off by default — you assign the character yourself. If you've assigned a trigger character to a result type under Settings → General → Quick Search Window → Result Type Priority, typing that character as the very first thing in the quick window shows only that type's results — Applications, Settings, one specific File Filter, a plugin's own items, or plain Files — hiding every other type:

;vs

finds "Visual Studio" among Applications only, if ; is that type's configured trigger, regardless of which other type's results would otherwise have matched the text better. Typing just the trigger character with nothing after it yet shows a prompt naming the type instead of "No Search Results". History and Favorites are unaffected either way — they always come first, trigger or not. No trigger is configured by default; see General settings to set one up.

Chinese filenames: pinyin aliasing

Filenames containing Chinese characters are automatically searchable by pinyin, with no setup required:

  • Full pinyin: typing chongqing matches a file named 重庆.
  • Initials: typing cq also matches 重庆 (first letter of each syllable).
  • Polyphonic characters (characters with more than one valid pronunciation) generate aliases for each common reading, so whichever pronunciation you think of is likely to match.

This is handled by a bundled alias plugin — see Settings → Plugins if you ever want to check it's enabled.

Favorites, not custom aliases

SwiftList does not have a general-purpose "define your own alias/macro" system. The closest equivalent is Favorites: pin a folder, file, or URL under a custom display name, and it becomes searchable by that name (shown with a ★ marker in results). If what you actually want is a custom keyword that launches a program, see Custom Commands instead.