Caxton
Features Benchmarks Pricing Support Download Free
Guide
Getting Started Opening Large Files Find & Replace Filtering CSV Workbench Editing at Scale Navigation & Bookmarks View & Themes Sessions & Recovery
Reference
Keyboard Shortcuts Menu Reference Settings & Storage Benchmarks

Settings & Storage

Caxton has no preferences maze: settings live in the menus where you use them. This page is the complete registry anyway, because a tool that changes your files should be able to name every knob, every default, and every byte it writes to disk.

Every setting, its default, where it lives

SettingDefaultChanged in
AppearanceSystemView ▸ Appearance ▸ System / Dark / Light
Editor size13 pt (range 9 to 36)View ▸ Zoom In ⌘+ / Zoom Out ⌘− / Actual Size ⌘0
Word Wrap (default for new windows)OffView ▸ Word Wrap ⌥⌘W
Wrap AtWindow widthView ▸ Wrap At ▸ Window Width / 80 / 100 / 120 Columns
Show InvisiblesOffView ▸ Show Invisibles
MinimapOn (unavailable past 500 MB)View ▸ Minimap
Tab Width4Text ▸ Whitespace ▸ Tab Width ▸ 2 / 3 / 4 / 8
Auto-Close BracketsOnEdit ▸ Brackets ▸ Auto-Close Brackets
First Row Is HeaderOn, per windowCSV ▸ First Row Is Header (not remembered across launches)
Keyboard shortcutsThe shipped setCaxton ▸ Preferences… ⌘, (the Keyboard window, below)
File Pattern RulesNoneEdit ▸ File Pattern Rules…
SnippetsNoneEdit ▸ Snippets…
Automatically Check for UpdatesOnCaxton ▸ Automatically Check for Updates

What persists where: everything in the table above is app-wide and survives relaunch. Per-window state (grid or text mode, wrap for that window, cursor, scroll position, window frame, open mode) rides in session restore instead. Two things deliberately reset every launch: the Diagnostics Overlay, and First Row Is Header, which follows each document. Follow Tail is a toolbar toggle with no stored default: it pauses itself when you scroll up, resumes when you return to the bottom, and is unavailable for files edited through an encoding conversion.

When a new window opens, wrap and tab width resolve in this order: the app-wide default, then a matching File Pattern Rule, then the session's memory of that exact file. Pattern rules resolve per field: rules are an ordered list, and each field (wrap, tab width, encoding, syntax) takes its value from the first matching rule that sets it, so a specific rule above a general one wins field by field. A pattern matches the file's name, or the full path when the pattern contains a /.

The Keyboard window

Caxton ▸ Preferences… ⌘, opens the Keyboard window: every menu command in the app, listed with its shortcut, every one rebindable (only the Apple, Services, and Open Recent menus are excluded). Select a command, click Record Shortcut, press the keys; Esc cancels the recording. If the combination is taken, the conflict is named and confirming reassigns it, unbinding the other command. Clear Override returns a command to its shipped shortcut. Only your overrides are stored, keyed by the command's menu path, so app updates that add commands never disturb your customizations.

Where Caxton keeps things

The complete write inventory. Nothing on this list leaves your Mac; Caxton has no telemetry.

WhatWhere
Settings, presets, histories~/Library/Preferences/com.hwyenigma.Caxton.plist: every setting above, saved searches, filter presets, sort presets, Batch Replace lists, snippets, pattern rules, pinned clipboard entries, shortcut overrides, and the find/replace/filter histories (20 entries each)
Session~/Library/Application Support/Caxton/session.json: open windows, modes, cursors, scroll positions, frames; written at quit
Named workspaces…/Caxton/workspaces.json; each exports as <name>.caxton-workspace.json, and import resolves file paths relative to the workspace file first, so a workspace can travel with its folder
Bookmarks and markers…/Caxton/Bookmarks/ and …/Caxton/Markers/, one small JSON sidecar per document, deleted when the document has none left. Your files are never annotated
Crash-recovery journals…/Caxton/recovery/: rewritten every 30 seconds while a document has unsaved edits, removed on save or clean close, swept after 7 days. Recovery never writes to your file itself; it replays into a window and lets you decide
Scratch space…/Caxton/scratch/: in-place-save rollback journals, disk-backed line indexes for the largest files, and UTF-8 working copies of converted documents. Cleaned after 24 hours, except rollback journals, which are kept for recovery
Trial and licenseThe login Keychain, mirrored by a small file in Application Support; the earlier of the two wins, so deleting either does not restart a trial. Stated plainly because you would find it anyway
Next to your filesOnly when you ask: Find in Files ▸ Replace writes .bak backups (the checkbox defaults to on), and Save As / atomic saves stage through the destination volume's own temporary area

Import and export

Saved searches export and import as JSON (caxton-searches.json) from the Advanced Find panel's preset menu. Batch Replace pair lists export and import as CSV or TSV (replace-pairs.csv; a .tsv extension switches the delimiter). Workspaces export as JSON from the Workspaces menu. Filter, sort, snippet, and pattern-rule presets currently live in settings only and move between Macs with the preferences file.

For the Terminal-inclined

One capability has no UI yet: custom fill lists for the grid's Fill Series (your own rotation names, region lists, anything ordered). They live in defaults as an array of lists, each needing at least two distinct entries:

defaults write com.hwyenigma.Caxton CaxtonCustomFillLists '(( "North", "South", "East", "West" ))'

After a relaunch the list appears in Fill Series ▸ Custom List as "Custom: North, South, East…". Every other setting on this page also lives at a sensible key in the same domain; the app reads them with plain defaults, no private state.