Libraries rot in three months. Usually these three
After three months the library is annoying, usually because of hygiene, not missing features.
te firing inside English. Two snippets sharing one abbreviation. Code shortcuts exploding in chat. Keep abbreviations short but not English words.
Settings → General → Trigger: master switch, require trigger key, key list, word boundary, adaptive case. Group ExpandWhen can override the boundary.
File/group ExpandIn: all apps, except, only these apps (Pro), disable. Search window and inline search stay unrestricted.
1. Names
3–8 characters, easy to type, hard to type by accident. xsig and zzbug beat ok and thanks.
Group prefixes namespace the library: ai-, cs-, dev-. A prefix is a namespace, not decoration.
Adaptive case helps English titles. Do not expect it to save a Chinese abbreviation. See Adaptive case.
2. When it expands
Keep the trigger key. Tighten “what sits before the abbreviation” with Expand When: word boundary, whitespace, non-alphanumeric. Turning off “require a key” is faster and dirtier.
A group may have its own trigger keys. Those stay on this machine and do not sync. The master switch is tray or hotkey pause expansion. Pause for demos, passwords, games that need raw typing.
3. Where it expands
ExpandIn (Pro) limits a group or a file to listed apps. Code stays in the IDE. Support stays in the browser and mail. Do not rely on being careful. try/except in Slack: Developer boilerplate.
Conflicts
Two files cannot share an abbreviation. The list marks collisions. See Conflicting abbreviations. Scan this after every import.
If you forgot the name, // — do not invent a shorter, more collision-prone abbreviation.
Tonight, rename the one natural-language abbreviation that already misfired. That beats ten new “magic” snippets.
Related: Migrate from TextExpander.