How Do Text Expanders Work? Triggers, Delimiters, Hotkeys, and Pickers (2026)
Understand the internal engine loop: from keystroke buffers and delimiter rules to per-snippet hotkeys and fuzzy search pickers.
Key Takeaways
- A text expander watches recent keystrokes, matches a trigger, deletes those characters, and inserts a stored snippet.
- A delimiter (Space, Tab, Enter, punctuation) can delay that match until you confirm it; some tools keep the delimiter, others drop it.
- A hotkey skips typing the abbreviation and fires a snippet (or a search UI) with a key combo.
- A picker (inline search / Quick Insert) is the escape hatch when you forget the trigger; FlitKey’s default is Alt+Space on Windows and Linux X11.
- You usually want more than one of these. Triggers for daily phrases, a picker for the rest.
Disclosure: We make FlitKey, a free MIT-licensed expander for Windows and Linux. This guide explains the category first. FlitKey is the GUI we recommend for local keyword + hotkey + picker use; TextExpander and Espanso still win on delimiter knobs and word-boundary matching.
The loop every expander shares
A text expander is background software that substitutes a short input for stored text. The short input is the trigger. The stored text is the snippet.
Under the hood the loop looks like this:
- Keep a short rolling buffer of recent characters (or wait for a hotkey).
- Test the buffer against your library.
- If a match is allowed (immediate, or after a delimiter / word boundary), delete the trigger characters.
- Insert the snippet, resolving dates, clipboard tokens, or fill-ins if the tool supports them.
- Optionally place the caret with a cursor marker.
That is the whole machine. Triggers, delimiters, hotkeys, and pickers are four ways to start step 2.
Zapier’s long-running expander guide names the same pieces: abbreviations, snippets, delimiters, and macros such as dates and clipboard inserts (Zapier, “Type Less”, verified August 2026). TextExpander’s FAQ uses “abbreviation” for the typed trigger and “Inline Search” for the picker (TextExpander terminology, verified August 2026).
Triggers (abbreviations, keywords, autotext)
A trigger is the string you type to call a snippet. Vendors disagree on the label (abbreviation, autotext, keyword, hotstring) and agree on the job.
| Vendor language | Product examples |
|---|---|
| Abbreviation | TextExpander |
| Trigger / match | Espanso |
| Keyword | FlitKey (trigger_type: keyword) |
| Autotext | PhraseExpress |
| Hotstring | AutoHotkey |
Good triggers are short, memorable, and hard to type by accident. Prefixes such as ; or : do most of that work. Type ;addr and you almost never collide with English; type addr and “address” becomes a landmine.
FlitKey stores keywords in the snippet record. A pack snippet looks like this (from docs, verified August 2026):
{
"label": "Git: Commit Message",
"trigger_type": "keyword",
"keyword": ":gcm",
"expansion_text": "git commit -m \"{{clipboard}}\"",
"platform": "all"
}
On Windows and Linux X11, FlitKey watches typed input and expands that keyword in the focused field. On Wayland, v0.6.0 does not register typed triggers; you use Quick Insert instead (platform matrix).
Espanso fires as soon as the typed buffer matches, unless you add word: true so the match only runs as a standalone word (ther → there without wrecking other) (Espanso match basics, verified August 2026). AutoHotkey hotstrings wait for an ending character unless you set the * option (AHK v2 Hotstrings, verified August 2026).
Delimiters (and why “immediate expand” bites)
A delimiter is the extra key that says “yes, expand now.” Space, Tab, Enter, Esc, and punctuation are the usual set.
TextExpander documents three expansion modes (Expansion settings, verified August 2026):
| Mode | What happens |
|---|---|
| Immediately when typed | Abbreviation completes → snippet appears |
| At delimiter (keep delimiter) | You type Space (or another chosen key); snippet appears and Space stays |
| At delimiter (abandon delimiter) | Same confirmation key, but the delimiter is discarded |
Default delimiter keys there include Space, Tab, Return, and Esc (Mac) or Enter (Windows), plus a long punctuation list you can enable. Keep-delimiter is handy when Space is the confirm key and you want to keep writing. Abandon-delimiter is handy when Enter would otherwise dump a blank line after every signature.
PhraseExpress talks about leading and trailing delimiters so ram does not fire inside grammar (PhraseExpress Triggers, verified August 2026). Espanso’s closest analog is word: true plus word_separators (Espanso options, verified August 2026). AutoHotkey’s analog is ending characters (-()[]{}':;"/\,.?! plus Space/Enter/Tab); O omits the ending character after replace.
FlitKey does not ship a TextExpander-style keep/abandon delimiter panel. You avoid accidental fires by choosing distinct keywords (:gcm, ;sig) rather than bare English. That is simpler, and it is less tunable. If you need per-group “expand only after whitespace” rules, Espanso or TextExpander still have the finer switches.
Hotkeys: skip the abbreviation
A hotkey is a chord (Ctrl+Alt+S, Alt+Shift+1) that runs an action without typing the trigger string.
Two jobs get mixed up:
- Snippet hotkeys: This snippet always expands when you press that combo. Useful for a handful of high-frequency replies. Useless as a scheme for 200 snippets, because you will run out of memorable chords.
- App hotkeys: Open search, repeat last expansion, create a snippet from the clipboard. TextExpander’s defaults include Inline Search on Command+/ (macOS), Control+/ (Windows), Control+Period (Chrome) (Inline Search docs, Hotkeys, verified August 2026).
FlitKey snippets can use trigger_type: hotkey instead of keyword. Docs: each snippet needs a label, expansion text, and either a keyword or a hotkey (pack format). Global hotkeys work on Windows (native hooks) and Linux X11 (xdotool). They are not available on Wayland in v0.6.0.
Assign hotkeys to the five phrases you hit all day. Leave the long tail on keywords and the picker.
Pickers: search when memory fails
A picker (inline search, search bar, Quick Insert) is a floating search over labels, triggers, and content. You invoke it with a hotkey or a tray action, type a few letters, and insert the match.
This is the feature that keeps a library usable past ~30 snippets. TextExpander’s 2025 year-in-review even listed “help me find Snippets faster” as the top request; retrieval fails before creation does.
| Tool | Picker | Default invoke |
|---|---|---|
| TextExpander | Inline Search | Cmd+/ / Ctrl+/ / Ctrl+. |
| Espanso | Search bar | Configurable search_shortcut; optional typed search trigger (options) |
| FlitKey | Quick Insert / search picker | Alt+Space on Windows and X11; on Wayland, open from the app or tray (copies to clipboard) |
FlitKey’s picker is the path that still works when typed expansion cannot. On a GNOME or KDE Wayland session, v0.6.0 disables keyword expansion and global hotkeys, then tells you to open Quick Insert and paste (troubleshooting). That is a real limitation of typed injectors on Wayland, not a marketing footnote. If you live on Wayland and refuse clipboard paste, Espanso’s experimental uinput path is the other documented option; it needs extra device permissions.
How FlitKey implements each path
| Activation | FlitKey | Windows | Linux X11 | Linux Wayland |
|---|---|---|---|---|
| Typed keyword | Yes (keyword) | Yes | Yes (xinput + xdotool) | No |
| Delimiter keep/abandon UI | No; use unique prefixes | n/a | n/a | n/a |
| Per-snippet hotkey | Yes (hotkey) | Native hooks | xdotool | No |
| Search picker | Quick Insert | Alt+Space | Alt+Space | App/tray; clipboard paste |
Architecture: PyQt6 GUI, local config.json (Linux ~/.config/flitkey/, Windows %APPDATA%\flitkey\), MIT license, no account. Placeholders in expansions: {{date}}, {{time}}, {{datetime}}, {{clipboard}}, {{cursor}}.
Where rivals still beat FlitKey on this topic:
- TextExpander: delimiter keep vs abandon, Inline Search defaults, mobile.
- Espanso:
word: true, regex triggers, script matches, Win+Mac+Linux file config. - AutoHotkey: ending-character and
*/O/?hotstring options, plus full scripting. - macOS: FlitKey has no Mac build. Use Espanso, aText, or TextExpander.
FlitKey’s bet is the combination: a visual library, local files, free, keyword and hotkey and picker on the two desktops we ship. You do not need YAML or a subscription to get all four activation ideas in one app, minus the advanced delimiter panel.
Which activation method to use
- Typed trigger: For anything you type several times a day and can remember. Prefix it (
;,:,//). - Delimiter-gated expand: (TextExpander / AHK ending chars / Espanso word mode) when the trigger is close to real English and you need a confirm key. FlitKey users should pick a prefix instead.
- Snippet hotkey: For two to ten “panic buttons”: a refund script, a status line, an address. Not for the whole catalog.
- Picker: As the default retrieval method once the library grows, and as the only method on FlitKey Wayland.
Most people end up with keywords for the daily set plus a picker for everything else. That pairing is why FlitKey ships both in the GUI instead of making you memorize a chord per snippet.
Hands-on: one snippet, four ways
Same follow-up line, four activations. Suppose the snippet is:
Follow up on {{date}}. Ref: {{clipboard}}
1. Keyword (FlitKey / Espanso / TextExpander)
Type :fup (FlitKey keyword) or ;fup in another expander. The tool deletes the trigger and inserts the line with today’s date and whatever you copied.
2. Delimiter (TextExpander-style)
Abbreviation fup. Expand at delimiter, abandon delimiter. You type fup then Space; the snippet appears with no trailing space so you can add punctuation.
3. Hotkey (FlitKey snippet hotkey)
Assign Ctrl+Alt+F to that snippet on Windows/X11. Press the chord in the ticket field. No abbreviation to remember, and no collision with the word “fup”.
4. Picker (FlitKey Quick Insert)
Press Alt+Space (or open Quick Insert from the tray on Wayland). Search follow. Select the snippet. On X11/Windows it inserts; on Wayland you paste from the clipboard.
If you are setting up FlitKey today: create the keyword first, learn Alt+Space the same afternoon, add hotkeys only for the phrases that already hurt. Download FlitKey (free). Full click paths live in the docs.
Frequently asked questions
How does a text expander actually insert text?
It deletes the trigger (or never types one, in the hotkey/picker cases) and sends the snippet through the OS input path: simulated keys, clipboard paste, or accessibility APIs. FlitKey uses Win32 hooks on Windows and xdotool on X11; Wayland uses clipboard paste from Quick Insert.
Do I need a delimiter?
Only if your triggers look like English. Prefixes (: / ;) usually remove the need. TextExpander, AutoHotkey, and Espanso give you extra confirm-key control if you want it.
What is the difference between a hotkey and a trigger?
A trigger is a typed string. A hotkey is a key combination. FlitKey supports both per snippet (keyword or hotkey). Pickers are a third path: one hotkey opens search for every snippet.
Why won’t FlitKey expand when I type on Linux Wayland?
v0.6.0 disables typed triggers and global hotkeys on Wayland. Open Quick Insert from the app or tray and paste. See the Wayland guide.
Is FlitKey’s picker the same as TextExpander Inline Search?
Same job (search and insert without remembering the abbreviation). Different invoke keys (Alt+Space vs Cmd+/ or Ctrl+/) and a clipboard fallback on Wayland instead of injecting into every compositor.
Sources and verification notes
Verified August 26, 2026 against official product documentation and releases.
- Zapier: Type Less (abbreviation, snippet, delimiter, macro): Category vocabulary.
- TextExpander expansion settings: Immediate vs keep/abandon delimiter.
- TextExpander: Expanding with delimiters: Default delimiter keys.
- TextExpander Inline Search: Cmd+/, Ctrl+/, Ctrl+..
- TextExpander hotkeys: Built-in vs customizable shortcuts.
- Espanso match basics (word triggers):
word: truevs substring matches. - Espanso options (word_separators, search shortcut): Separator list and search bar.
- AutoHotkey v2 Hotstrings: Ending characters,
*andOoptions. - PhraseExpress Triggers: Leading/trailing autotext delimiters.
- FlitKey documentation: Keywords, hotkeys, Alt+Space picker, Wayland fallback, pack JSON.
Related guides
What Is Text Expansion?
Definition, mechanics, time math, and category overview for 2026.
Deep diveTriggers vs Hotkeys vs Pickers
Retrieval strategy breakdown and when to use each method.
CompatibilityDo Text Expanders Work in Every App?
Where desktop tools, extensions, and Wayland succeed or fail.
Buying guideHow to Choose a Text Expander
Pick by OS, team size, and where snippets live.
Linux guideText Expanders on Wayland
X11 vs Wayland input architecture and FlitKey Quick Insert.
AlternativesEspanso Alternatives
7 options ranked by why you are leaving YAML config.