Find in Files plugin¶
Search every file in a folder on disk and jump straight to each match — for finding everywhere a term appears across a project. The search runs in the background, so the editor stays responsive on large trees.
Where to find it¶
Search ▸ Find in Files… — shortcut Ctrl+Shift+F.
The dialog¶
| Field / option | Meaning |
|---|---|
| Find what | The term to search for (with recent-query history). |
| Search in | The scope: Folder or Open documents (see below). |
| Filters | File-name globs to include, e.g. *.cpp *.h or *.txt. Empty means every file. (Recent filters are remembered.) Folder scope only. |
| Directory | The folder to search; Browse… picks one. Recent directories are remembered. Folder scope only. |
| In all sub-folders | Recurse into sub-directories (on by default). Folder scope only. |
| Match case | Case-sensitive search. |
| Match whole word only | Match only complete words. |
| Search mode | Normal (literal), Extended (decode \n, \t, \r, \0, \xNN), or Regular expression (ECMAScript regex). |
Search scope¶
The two scopes are deliberately disjoint — a result always comes from exactly one of them:
| Scope | What is searched |
|---|---|
| Folder | The files on disk under Directory (honouring Filters and In all sub-folders). Open tabs that live outside that folder are not included, and unsaved edits are not seen — this is a scan of the disk. |
| Open documents | The live buffers of every open tab, including untitled ones and unsaved edits. Filters and the directory are ignored. |
Folder is the default while a workspace folder is open (File ▸ Open Folder); Open documents is the default otherwise. Folder stays available whenever a directory is known (the active file's folder, a remembered one, or one you pick with Browse…), so Find All always searches something — it never silently does nothing.
Results¶
Matches accumulate in a dockable Results panel as they are found, grouped by file with the line number and matching text. Double-click a hit to open that file and jump to the exact line and column; a hit from the Open documents scope activates its tab (with the edits that produced the match intact) instead of reloading the file from disk.
The panel header has a Stop button while a search runs. Closing the dialog does not interrupt a running search — the Results panel owns it.
How it scans
A background thread walks the chosen directory (optionally recursing) and reads each file that passes the filter. Hits reach the panel in batches and the walker waits when the panel falls behind, so a huge tree keeps the UI responsive. A search stops after 20 000 matches with "Results truncated at 20000 matches — narrow the filter" — that is a cap on matching lines, not on files scanned. The Open documents scope runs over in-memory buffers and needs no thread.