Filtering
A filter shows only the lines that match — like grep, except the result is still your document: scrollable, searchable, editable, with original line numbers.
The filter bar
Press ⇧⌘L, type a condition, press Return.
Only the matching lines remain visible — 160,846 of 8 million, applied in about a quarter of a second. The gutter keeps the original line numbers.
- Per-condition toggles: Aa case, W whole word, .* regex, and ≠ to exclude matching lines instead.
- Filtering 80.6 million lines takes about 1.3 s (measured).
- Editing while filtered works; if a change makes results stale, a Refresh chip appears rather than the view churning under you.
- Closing the bar (✕) clears the filter and restores the full view. Esc returns focus to the editor and keeps the filter.
Multiple conditions
Click + to add conditions in the Filter Lines panel. Conditions chain with per-row AND/OR joiners (AND binds tighter), and each row has its own case/word/regex/≠ toggles.
The panel owns every condition. Apply runs the whole chain; Extract All sends the matching lines to a new document.
In the bar itself, extra conditions never stack rows — they fold into a one-line digest under the query field. Click the digest to reopen the panel.
Four conditions active, one slim line of chrome: the digest reads the whole chain back to you.
Working with results
- Extract All — copy every matching line into a new untitled document.
- Bookmark All Filtered — bookmark the visible set.
- Presets — save a condition chain by name and recall it from the bar; recent filters live under the clock icon.
- Import — drop a text file on the bar and each non-empty line becomes an OR condition (up to the condition cap).
- Delete Lines Matching… (Text menu) — the destructive sibling: removes matching lines, streaming to a new document when the result would be enormous.
Slice scope
In slice or tail mode the filter labels itself with the loaded window ("filtering loaded slice — 500 MB of 50 GB") and offers Entire File, which scans past the loaded slice on disk.