Hopkey
Hopkey is a keyboard-only jump mode for VS Code.
It lets you jump to nearby characters faster than moving with arrow keys.
Features
- Keyboard-first jump workflow.
- Visible character matches in the current viewport.
- Keycap-style labels for quick selection.
- Forward labels (
a-z) and backward labels (A-Z).
- Paging support with
Page Down and Page Up when many matches exist.
- Configurable case sensitivity.
- Multi-character string search mode.
Quick Start
- Open a text editor in VS Code.
- Press Hopkey (default:
Ctrl+; on Windows/Linux, Cmd+; on macOS).
- Type the character you want to jump to.
- Press the shown label key:
- Uppercase label (
A-Z) jumps backward.
- Lowercase label (
a-z) jumps forward.
If the label is valid, your cursor jumps to just before that character.
String mode is optional and disabled by default. Enable hopkey.multiCharacterSearchEnabled, then press your Hopkey activation shortcut again to switch to multi-character string mode, type your string, then press Esc, Enter, or Hopkey again to show jump labels.
If you want Hopkey to enter string mode on the first Hopkey press, enable hopkey.stringSearchOnFirstHopkeyPress (this only applies when hopkey.multiCharacterSearchEnabled is enabled).
To disable string mode and keep only the single-character flow, set hopkey.multiCharacterSearchEnabled to false.
Multi-Character String Mode
- Enable
hopkey.multiCharacterSearchEnabled.
- Press your Hopkey activation shortcut twice.
- Type a search string. Hopkey highlights visible matches as you type.
- Use
Backspace/Delete to edit the string and Left/Right arrows to move inside the string.
- Press
Esc, Enter, or Hopkey again to confirm and show jump labels.
- Press the shown label key to jump.
If no visible match exists when you confirm, Hopkey shows Selection not found and exits.
How It Works
- Activate Hopkey.
- Hopkey captures your next typed character as the target (it does not edit the document).
- Matching visible characters are highlighted and labeled.
- Type one label key to jump.
- Hopkey exits and clears temporary decorations.
Controls
- Activate Hopkey (default):
Ctrl+; / Cmd+;
- Toggle case sensitivity: Command Palette ->
Hopkey: Toggle Case Sensitivity (no default keybinding)
- Cancel mode:
Esc
- Page to farther matches:
Page Down
- Page back toward nearer matches:
Page Up
- Click a highlighted match: jump and exit
- Click elsewhere while active: cancel
Settings
Hopkey provides these settings to customize behavior:
hopkey.caseSensitive
- Type: boolean
- Default:
true
- Description: Controls whether Hopkey target matching is case-sensitive.
true: C matches C only.
false: C matches both C and c.
hopkey.multiCharacterSearchEnabled
- Type: boolean
- Default:
false
- Description: Enables multi-character string search mode. When enabled, press Hopkey twice to enter string build mode.
true: Press Hopkey twice to enter multi-character string search mode.
false: Hopkey uses the existing single-character workflow.
hopkey.stringSearchOnFirstHopkeyPress
- Type: boolean
- Default:
false
- Description: Controls whether the first Hopkey press goes directly into string mode.
true: First Hopkey press enters string mode immediately.
false: String mode is entered on the second Hopkey press.
- Note: This setting only applies when
hopkey.multiCharacterSearchEnabled is true.
hopkey.languageOverride
- Type: string
- Default:
auto
- Description: Overrides the language for Hopkey status messages.
auto: Uses VS Code's display language.
en, en-gb, es, fr, it, de, ja: Forces a specific language for status messages.
Configuration
Change Settings
Open VS Code settings file at settings.json:
- Press
Ctrl+Shift+P (or Cmd+Shift+P on macOS)
- Run Preferences: Open User Settings (JSON)
Example:
{
"hopkey.caseSensitive": false,
"hopkey.multiCharacterSearchEnabled": false,
"hopkey.stringSearchOnFirstHopkeyPress": false,
"hopkey.languageOverride": "en"
}
See Settings above for all available options.
Change Keybindings
Open VS Code keybindings file at keybindings.json:
- Press
Ctrl+Shift+P (or Cmd+Shift+P on macOS)
- Run Preferences: Open Keyboard Shortcuts (JSON)
Example: Change activation key to Ctrl+Alt+J
[
{
"key": "ctrl+alt+j",
"command": "hopkey.activate",
"when": "editorTextFocus"
},
{
"key": "ctrl+;",
"command": "-hopkey.activate"
}
]
Example: Assign Ctrl+Alt+C to toggle case sensitivity
[
{
"key": "ctrl+alt+c",
"command": "hopkey.toggleCaseSensitivity",
"when": "editorTextFocus"
}
]
Example: Change cancel key to Escape (already default, but shown for reference)
[
{
"key": "escape",
"command": "hopkey.cancelMode",
"when": "hopkey.modeActive"
}
]
You can bind any available key combination. Common examples:
ctrl+alt+j – Control + Alt + J
cmd+k – Command + K (macOS, or Control + K on Windows)
alt+j – Alt + J
ctrl+shift+; – Control + Shift + Semicolon
Notes
- Hopkey currently searches visible text in the editor viewport.
- If no valid target or label is provided, Hopkey cancels without changing document text.
- Keybindings are fully remappable in VS Code Keyboard Shortcuts.
Contributing
Interested in developing or packaging Hopkey? See CONTRIBUTING.md for setup instructions, build commands, and packaging details.