Cursor Hints
Cursor hints let you control where the cursor lands after expansion, so you can keep typing immediately.
The $|$ Marker
Place $|$ in your replace text where you want the cursor to end up:
- trigger: ":div"
replace: "<div>$|$</div>"
Type :div and the cursor lands between the tags.
Common Patterns
HTML/XML Tags
- trigger: ":a"
replace: '<a href="$|$">link text</a>'
- trigger: ":img"
replace: '<img src="$|$" alt=""/>'
Function Calls
- trigger: ":fn"
replace: "function $|$() {\n \n}"
- trigger: ":log"
replace: "console.log($|$);"
Git Commands
- trigger: "git!com"
replace: "git commit -m \"$|$\""
- trigger: "git!tag"
replace: "git tag -a $|$ -m \"\""
Shell One-Liners
- trigger: ":for"
replace: "for item in $|$; do\n \ndone"
Rules
- Only one
$|$per match — multiple markers are ignored - Works in both
replaceandformoutput templates - Compatible with all injection backends (stdout, tmux, clipboard)
Limitations
note
In code editors with auto-indenting, cursor positioning may shift on multi-line expansions. The feature simulates arrow-key presses to reposition the cursor, which auto-indent can disrupt. For best results, use cursor hints on single-line replacements or in plain text fields.
What's Next
- Learn about Case Propagation to match trigger casing
- Explore Match Disambiguation for shared triggers