LaTeX Hotkeys
LaTeX Hotkeys is a VS Code extension that performs immediate LaTeX trigger replacement while you type, without opening completion UI or requiring an accept keystroke.
Demo

Features
- Customizable leader key,
` by default.
- Immediate trigger replacement in LaTeX editors, including rules that do not use the leader key.
- Template expansion with an initial cursor position and visible placeholder tokens.
Tab jumps to the next placeholder token and deletes it.
- Settings Sync friendly configuration through user settings and keybindings.
Default Rules
The extension now ships with the full default map from full_map.md, including leaderless rules such as __, (), [], ^^, $$, ((, [[, and {{.
[
{
"trigger": "__",
"expansion": "_{◊}◊",
"useLeader": false
},
{
"trigger": "a",
"expansion": "\\alpha"
},
{
"trigger": "/",
"expansion": "\\frac{◊}{◊}◊"
}
]
Typing `a inserts \alpha.
Typing `/ inserts \frac{}{◊} and places the caret inside the numerator braces.
Typing __ inserts _{} plus a trailing placeholder and places the caret inside the braces.
Configuration
{
"latexHotkeys.leaderKey": "`",
"latexHotkeys.placeholderToken": "◊",
"latexHotkeys.languageIds": [
"latex"
],
"latexHotkeys.rules": [
{
"trigger": "__",
"expansion": "_{◊}◊",
"useLeader": false,
"enabled": true
},
{
"trigger": "a",
"expansion": "\\alpha",
"enabled": true
},
{
"trigger": "/",
"expansion": "\\frac{◊}{◊}◊",
"enabled": true
}
]
}
Compact expansion rules use the first placeholder marker as the initial cursor position and leave later placeholder markers in the document for Tab navigation.
Explicit template rules still support two markers:
{{cursor}}: initial caret position.
{{placeholder}}: visible placeholder token, replaced with latexHotkeys.placeholderToken.
Sync Across Devices
Publish the extension to the Marketplace and enable Settings Sync for:
- Settings
- Keyboard Shortcuts
- Extensions
The rule list and Tab keybinding will then follow your VS Code account across machines.
Development
This folder is kept inside OneDrive, so avoid installing dependencies here directly.
Package a VSIX locally in a temporary build directory:
npm run marketplace:package
Publish from CI or a trusted local machine:
$env:VSCE_PAT = "your-marketplace-token"
npm run marketplace:publish
More detail is in PUBLISHING.md.