Find and Find & Replace

Three commands in the Find menu, in increasing order of reach — one document, then the whole project.

CommandShortcutReach
Find…⌘FThe single field or section you're currently in.
Find & Replace in Document…⌘⌃FSame one field, with a replace row.
Find & Replace in Project…⌥⌘FThe whole manuscript, the whole Story Bible, or both.

Find… and Find & Replace in Document…

The Mac's own find bar, attached to whatever text you're currently focused in — a scene's prose, a note, any field. Incremental highlighting, previous/next, and the system's own case and word-match options, exactly as they behave in every other Mac app. Both are disabled when nothing is focused to search.

Find & Replace in Project…

A different tool for a different job: search and rewrite across everything at once, with the options a project-wide pass actually needs.

Search options

ToggleDoes
RegexTreats Find as a regular expression instead of literal text.
Match caseCase-sensitive matching.
Whole wordOnly matches whole words, not a substring inside one.
^$ per line (regex only)Line anchors match at every line break, not just the start and end of the whole field.
. matches ¶ (regex only)Lets a dot match across paragraph breaks.
Inside linksOff by default. Matches inside a [[wikilink]] are skipped unless this is on, protecting the link's slug and ID from an accidental rewrite.

A scope picker chooses where the search runs — the manuscript, the Story Bible, or both — and Story Bible here means every narrative field a record has, not just Summary: Biography, Physical, Personality and Voice on a character; Exterior, Interior and History on a location; and so on per type. When a manuscript is active, a This book toggle limits manuscript matches to it alone.

Footnote and citation markers ([^1], [@citekey]) are always protected, regardless of the Inside Links toggle — the marker itself is skipped, though the note or citation's own text stays searchable.

Replacing

Replace Selected rewrites only the checked matches in the results list; Replace All rewrites every match currently found. Every match is checked by default after a search, so Replace Selected behaves like Replace All unless you deliberately uncheck something first.

A capture-group and case-transform syntax is available in the Replace field for regex searches — $1 for a captured group, \U…\E to upper-case a replacement.

What actually protects you here is not a full project backup — it's narrower and automatic. Before the first edit in a Replace pass touches a chapter or scene, that section gets one snapshot titled "Before Find & Replace" (find it later in that section's own Snapshots tab), and the whole pass runs as a single undo group — one ⌘Z reverts every match a Replace All just made, however many there were. Story Bible field replacements are covered by the same undo group but are not separately snapshotted.

Cleanup presets

The bookmark menu beside the Find field holds a set of built-in, ready-made passes for the small inconsistencies a long draft accumulates: curly quotes, em dashes, ellipses, collapsing double spaces, trimming trailing whitespace, collapsing blank lines, normalizing scene breaks, and more. Running one asks for confirmation first, states its scope, and — like any other replace — takes its snapshots and runs as one undo.

The same menu lets you save your own current search for reuse later, and keeps your last eight searches to hand.

Renaming a Story Bible entity from here

If the Find text exactly matches a Story Bible record's name, a banner offers to rename the record itself to whatever's in the Replace field — every wikilink pointing at it keeps working, since a link stores the record's identity, not its display text.