Keyboard Shortcuts
VMark is designed for keyboard-first workflows. Most shortcuts can be customized in Settings. A small number of primitives are fixed: the multi-cursor selectors Mod+D (Select Next Occurrence) and Mod+Shift+L (Select All Occurrences), and the global Undo/Redo bindings. The other multi-cursor shortcuts (Skip Occurrence, Soft Undo Cursor, Add Cursor Above/Below) are configurable. Shortcuts marked (context-aware) are handled inside the editor for specific structures (e.g., task list checkbox toggle) and are not exposed in the customization registry.
Notation
- Mod = Cmd on macOS, Ctrl on Windows/Linux
- Alt = Option on macOS
Function Keys on macOS
VMark uses function keys (F2–F10) for quick mode toggles. On macOS, these keys are mapped to system functions (brightness, volume, etc.) by default.
To use F-keys directly without holding Fn:
- Open System Settings → Keyboard
- Enable "Use F1, F2, etc. keys as standard function keys"
Alternatively, hold the Fn key when pressing F2–F10 to trigger VMark shortcuts.
TIP
If you prefer keeping system functions on F-keys, you can customize VMark shortcuts in Settings (Mod + ,) to use different key combinations.
F-Key Quick Reference
| Key | Action |
|---|---|
F2 | Next Issue |
Shift + F2 | Previous Issue |
F3 | Toggle Invisibles |
F4 | Sort Lines Ascending (Source mode only; does nothing in WYSIWYG) |
Shift + F4 | Sort Lines Descending (Source mode only; does nothing in WYSIWYG) |
F5 | Source Peek |
F6 | Source view (Markdown: WYSIWYG ⇄ Source; other formats: Source ⇄ Split) |
Shift + F6 | Split / Preview (Markdown: split view; other formats: Preview ⇄ Split) |
F7 | Toggle Status Bar |
F8 | Focus Mode |
F9 | Typewriter Mode |
F10 | Read-Only Mode |
Edit
| Action | Shortcut |
|---|---|
| Undo | Mod + Z |
| Redo | Mod + Shift + Z |
Text Formatting
| Action | Shortcut |
|---|---|
| Bold | Mod + B |
| Italic | Mod + I |
| Underline | Mod + U |
| Strikethrough | Mod + Shift + X |
| Inline Code | Mod + Shift + ` |
| Highlight | Mod + Shift + M |
| Subscript | Alt + Mod + = |
| Superscript | Alt + Mod + Shift + = |
| Link | Mod + K |
| Open Link (Source mode) | Cmd + Click |
| Remove Link | Alt + Shift + K |
| Wiki Link | Alt + Mod + K |
| Bookmark Link | Alt + Mod + B |
| Clear Formatting | Mod + \ |
Block Formatting
| Action | Shortcut |
|---|---|
| Heading 1-6 | Mod + 1 through Mod + 6 |
| Paragraph | Mod + Shift + 0 |
| Increase Heading Level | Alt + Mod + ] |
| Decrease Heading Level | Alt + Mod + [ |
| Blockquote | Alt + Mod + Q |
| Code Block | Alt + Mod + C |
| Bullet List | Alt + Mod + U |
| Ordered List | Alt + Mod + O |
| Task List | Alt + Mod + X |
| Toggle Task Checkbox | Mod + Shift + Enter (context-aware; not customizable) |
| Indent | Mod + ] |
| Outdent | Mod + [ |
| Horizontal Line | Alt + Mod + - |
Line Operations
| Action | Shortcut |
|---|---|
| Move Line Up | Alt + Up |
| Move Line Down | Alt + Down |
| Duplicate Line | Shift + Alt + Down |
| Delete Line | Mod + Shift + K |
| Join Lines | Mod + J |
| Sort Lines Ascending | F4 (Source mode only) |
| Sort Lines Descending | Shift + F4 (Source mode only) |
Text Transformations
| Action | macOS | Windows/Linux |
|---|---|---|
| UPPERCASE | Ctrl + Shift + U | Alt + Shift + U |
| lowercase | Ctrl + Shift + L | Alt + Shift + L |
| Title Case | Ctrl + Shift + T | Alt + Shift + T |
| Toggle Case | (customizable) | (customizable) |
| Remove Blank Lines | (customizable) | (customizable) |
| Toggle Quote Style | Shift + Mod + ' | Shift + Mod + ' |
Insert
| Action | Shortcut |
|---|---|
| Insert Image | Mod + Shift + I |
| Insert Video | — |
| Insert Audio | — |
| Insert Table | Mod + Shift + T |
| Table of Contents | (customizable) |
| Inline Math | Alt + Mod + M |
| Math Block | Alt + Mod + Shift + M |
| Insert Note | Alt + Mod + N |
| Insert Tip | Alt + Mod + Shift + T |
| Insert Warning | Mod + Shift + W |
| Insert Important | Alt + Mod + Shift + I |
| Insert Caution | Mod + Shift + U |
| Insert Collapsible | Alt + Mod + D |
| Insert Diagram | Alt + Mod + Shift + D |
| Insert Graphviz Diagram | (customizable) |
| Insert Mindmap | Alt + Mod + Shift + K |
| Toggle Comment | Mod + / |
Selection & Multi-Cursor
| Action | Shortcut |
|---|---|
| Select Line | Mod + L |
| Select All Occurrences in Block | Alt + Mod + Shift + L |
| Expand Selection | Ctrl + Shift + Up |
| Select Next Occurrence | Mod + D |
| Skip Occurrence | Mod + Shift + D |
| Select All Occurrences | Mod + Shift + L |
| Soft Undo Cursor | Alt + Mod + Z |
| Add Cursor Above | Mod + Alt + Up |
| Add Cursor Below | Mod + Alt + Down |
| Collapse Multi-Cursor | Escape |
Find & Replace
| Action | Shortcut |
|---|---|
| Find & Replace | Mod + F |
| Find Next | Mod + G |
| Find Previous | Mod + Shift + G |
| Use Selection for Find | Mod + E |
| Find in Files | Mod + Shift + H |
View & Mode
| Action | Shortcut |
|---|---|
| Source view (Markdown ⇄ Source; other formats Source ⇄ Split) | F6 |
| Split / Preview (Markdown split; other formats Preview ⇄ Split) | Shift + F6 |
| Split Editor — Two Documents | Alt + Mod + \ |
| Toggle Status Bar | F7 |
| Focus Mode | F8 |
| Typewriter Mode | F9 |
| Read-Only Mode | F10 |
| Actual Size | Mod + 0 |
| Zoom In | Mod + = |
| Zoom Out | Mod + - |
| Word Wrap | Alt + Z |
| Last Used Tab | Ctrl + Tab |
| Split Editor — Two Documents | Alt + Mod + \ |
| Close Pane | Alt + Mod + Shift + \ |
| Focus Other Pane | Alt + Mod + Shift + O |
| Toggle Sidebar | Ctrl + Shift + 0 |
| Toggle Outline | Ctrl + Shift + 1 |
| Toggle File Explorer | Ctrl + Shift + 2 |
| Toggle History | Ctrl + Shift + 3 |
| Toggle Knowledge Base | Ctrl + Shift + 4 |
| Toggle Window Status | Ctrl + Shift + 5 |
| Toggle Line Numbers (code blocks) | Alt + Mod + L |
| Toggle Terminal | Ctrl + ` |
| Focus Terminal or Editor | Ctrl + Shift + ` (Alt + Shift + ` on Windows/Linux) |
| Toggle Diagram Preview | Alt + Mod + P |
| Fit Tables to Width | (customizable) |
| Open Universal Toolbar | Mod + Shift + B |
| Source Peek | F5 |
| Check Markdown | Alt + Mod + V |
| Next Issue | F2 |
| Previous Issue | Shift + F2 |
Toggle Knowledge Base
Ctrl + Shift + 4 is hidden by default, along with the View → Knowledge Base menu item and the palette command. No release build on any platform ships the content-server runtime the feature needs, so the entry points appear only when Settings → Advanced → Developer tools is on — see Knowledge Base & Slidev. The shortcut stays listed and customizable in Settings → Shortcuts either way.
File Operations
| Action | Shortcut |
|---|---|
| New File | Mod + N |
| Quick Open | Mod + O (fuzzy file browser) |
| Open Command Palette | Mod + Shift + P |
| Open File... | Menu only (native file picker) |
| Open Workspace | Mod + Shift + O |
| Save | Mod + S |
| Save As | Mod + Shift + S |
| Save All and Quit | Alt + Mod + Shift + Q |
| Move to | Menu only |
| Close | Mod + W |
| Export HTML | Menu only |
Mod + P | |
| Export PDF | — |
| Settings | Mod + , |
Clipboard
| Action | Shortcut |
|---|---|
| Copy as HTML | Mod + Shift + C |
| Paste Plain Text | Mod + Shift + V |
AI Genies
| Action | Shortcut |
|---|---|
| Open AI Genies | Mod + Y |
| Accept suggestion | Enter |
| Reject suggestion | Escape |
| Next suggestion | Tab |
| Previous suggestion | Shift + Tab |
| Accept all suggestions | Mod + Shift + Enter |
| Reject all suggestions | Mod + Shift + Escape |
CJK Formatting
| Action | Shortcut |
|---|---|
| Format Selection | Mod + Shift + F |
| Format Document | Alt + Mod + Shift + F |
Window & Tabs
| Action | Shortcut |
|---|---|
| New Window | Mod + Shift + N |
| New Tab | Mod + T |
| New Browser Tab | Alt + Mod + Shift + B |
| Next Tab | Mod + Shift + ] |
| Previous Tab | Mod + Shift + [ |
| Close Tab | Mod + W |
| Reopen Closed Tab | (customizable) |
| Toggle Hidden Files | Mod + Shift + . |
| Toggle All Files | Mod + Shift + A |
Windows/Linux Note
Toggle Hidden Files uses Ctrl + H on Windows and Linux.
Toggle Sidebar uses Alt + Shift + 0 on Windows and Linux, because Mod is Ctrl there — so the macOS chord Ctrl + Shift + 0 would collide with Paragraph's Mod + Shift + 0.
New Browser Tab
Alt + Mod + Shift + B opens an embedded browser tab, and also appears in the File menu. The embedded browser is on by default on macOS; if you turn it off under Settings → Advanced → Embedded browser, the menu item is hidden (not greyed out) until you turn it back on. The browser is macOS-only, so the item never appears on Windows or Linux.
It is a real menu item rather than only a keyboard binding, and that matters: once a web page has keyboard focus, the browser engine consumes key presses before VMark sees them, so an in-app shortcut cannot fire. A menu accelerator is dispatched by macOS itself, so it still works while you are browsing.
Help (macOS only)
| Action | Shortcut |
|---|---|
| Search Menus | Cmd + Shift + / |
TIP
This is a native macOS system shortcut that searches all menu items. Type a keyword to find and execute any menu action.
Smart Tab Navigation
Tab and Shift+Tab are context-aware — they escape brackets, quotes, formatting marks, and links.
| Context | Tab Action |
|---|---|
Before ), ], }, quotes | Jump past closing character |
Before CJK brackets 」, 』, etc. | Jump past closing bracket |
Inside bold, italic, code | Jump after formatting |
| Inside a link | Jump after link |
| Context | Shift+Tab Action |
|---|---|
After (, [, {, quotes | Jump before opening character |
After CJK brackets 「, 『, etc. | Jump before opening bracket |
Inside bold, italic, code | Jump before formatting |
| Inside a link | Jump before link |
TIP
See Smart Tab Navigation for the complete guide including CJK brackets, curly quotes, and settings.
Table Editing
When cursor is inside a table:
| Action | Shortcut |
|---|---|
| Next Cell | Tab |
| Previous Cell | Shift + Tab |
| Add Row Below | Mod + Enter |
| Add Row Above | Mod + Shift + Enter |
| Delete Row | Mod + Backspace |
| Format Table | Alt + Mod + T |
| Exit Table | Arrow keys at table edge |
Popup Navigation
When a popup is open (link, image, math, etc.):
| Action | Shortcut |
|---|---|
| Close Popup | Escape |
| Confirm/Save | Enter |
| Navigate Fields | Tab / Shift + Tab |
Math Block Editing
When editing a math block:
| Action | Shortcut |
|---|---|
| Commit & Exit | Mod + Enter |
| Cancel & Exit | Escape |
Terminal
When the integrated terminal is focused:
| Action | Shortcut |
|---|---|
| Toggle Terminal | Ctrl + ` |
| Focus Terminal or Editor | Ctrl + Shift + ` (Alt + Shift + ` on Windows/Linux) |
| Copy | Mod + C (with selection); on Linux also Ctrl + Shift + C or Ctrl + Insert |
| Paste | Mod + V; on Linux also Ctrl + Shift + V or Shift + Insert |
| Select All (terminal output only) | Mod + A (Ctrl + Shift + A on Linux) |
| Clear | Mod + K (Ctrl + Shift + K on Linux) |
| Search | Mod + F (Ctrl + Shift + F on Linux) |
| Switch to session 1–5 | Mod + 1 through Mod + 5 |
| Terminal font bigger | Mod + = |
| Terminal font smaller | Mod + - |
| Terminal font default size | Mod + 0 |
| Previous command prompt | Mod + ↑ |
| Next command prompt | Mod + ↓ |
| Newline in the input line (Claude Code and similar tools) | Shift + Enter |
While the terminal is focused, Mod + =, Mod + - and Mod + 0 resize the terminal's font instead of the editor's.
Prompt navigation jumps between command prompts in the scrollback and requires shell integration (zsh or bash).
On macOS the terminal also translates the usual text-editing chords for the shell:
| Action | Shortcut |
|---|---|
| Move one word left / right | Option + ← / Option + → |
| Move to line start / end | Cmd + ← / Cmd + → |
Delete the input line (sends Ctrl + U) | Cmd + Backspace |
Ctrl chords such as Ctrl + A, Ctrl + R and Ctrl + W go straight to the shell on macOS.
On Linux the terminal follows the usual Linux terminal convention: plain Ctrl + letter chords go to the shell, so readline keys such as Ctrl + A, Ctrl + E, Ctrl + K, Ctrl + F, Ctrl + U and Ctrl + W work as in any other Linux terminal, and the terminal's own actions move to Ctrl + Shift — Ctrl + Shift + A selects all, Ctrl + Shift + K clears, Ctrl + Shift + F searches, and Ctrl + Shift + C / Ctrl + Shift + V copy and paste. Ctrl + Insert and Shift + Insert also copy and paste. Two plain Ctrl chords stay with the terminal: Ctrl + C copies a selection (and sends SIGINT when nothing is selected), and Ctrl + V pastes. Ctrl + 1 through Ctrl + 5 still switch sessions.
When the terminal search bar is open:
| Action | Shortcut |
|---|---|
| Next Match | Enter |
| Previous Match | Shift + Enter |
| Close Search | Escape |
TIP
Mod + C without a selection sends SIGINT to the running process. See Integrated Terminal for the full guide.
Customizing Shortcuts
- Open Settings with
Mod + , - Navigate to the Shortcuts tab (type in the search box to filter by name, category, description or key)
- Click the key shown next to a shortcut — or Unassigned for one with no key yet
- Press your desired key combination, then click Assign (
Escapecancels)
The dialog warns you before you assign a combination:
- Conflict — the combination is already used by another shortcut, which it names. You can still choose Assign Anyway.
- Not supported — VMark cannot use that combination, so it cannot be assigned. Try another.
A customized shortcut is highlighted and gets a Reset to default button. Reset All restores every default after asking for confirmation. Export saves your shortcuts as a JSON file (vmark-shortcuts.json) and Import loads one; if any entry in the file is invalid, nothing is imported and the problems are listed.
TIP
Shortcuts sync with menu accelerators when applicable, so menu items will show your customized shortcuts.