Introduction
This document provides a comprehensive reference for all keybindings in Scimax VS Code. The extension brings Emacs-style org-mode functionality to Visual Studio Code, with keybindings designed to match the familiar Emacs Scimax experience.
Global Commands
| Key | Action |
|---|---|
| C-S-j | Open today's journal entry |
| s-S-j | (Mac) Open today's journal entry |
| C-c m | Show Hydra main menu |
| C-c C-m | Show Hydra context menu |
| C-c d | Show database hydra menu |
| C-c c | Quick capture |
| C-c t | Quick capture TODO |
| C-M-v | Show database menu |
| C-s-v | (Mac) Show database menu |
| C-S-r | Reload window |
| s-S-r | (Mac) Reload window |
| M-[ | Previous journal entry (in journal) |
| M-] | Next journal entry (in journal) |
| C-c S-/ | Context-sensitive help |
| C-c S-g | Show link graph for current file |
✅ Help Commands
Emacs-style help commands for discovering keybindings and commands.
| Key | Action |
|---|---|
| C-h k | Describe key - type a key sequence to see its command |
| C-h b | List keybindings - browse all keybindings |
| C-h f | Describe command - select a command to see its keys |
| C-h v | Describe variable - view setting details |
| C-h a | Apropos - search documentation for keywords |
C-h k (Describe Key)
Type a key sequence using either Emacs notation (C-c C-c, M-x) or VS Code notation (ctrl+c ctrl+c, alt+x) to see what command it is bound to. Shows the command ID, title, and any context conditions (when clause).
C-h b (List Keybindings)
Browse all scimax keybindings in a searchable list. Filter by typing to find keybindings. Select an entry to see full details or execute the command.
C-h f (Describe Command)
Search for a command by name and see its keybindings. Useful when you know what you want to do but not the keybinding.
C-h v (Describe Variable/Setting)
Browse all scimax settings with completion. Shows the setting type, default value, current value, and description. Actions include opening VS Code Settings to modify the value.
C-h a (Apropos)
Search the documentation for keywords. Enter one or more search terms to find relevant documentation sections. Results are ranked by relevance:
Heading matches score highest
Command and keybinding mentions score high
Keyword and content matches score lower
Select a result to see details or open the documentation file at that location.
Emacs-Style Editor Keybindings
| Key | Action |
|---|---|
| M-x | Show command palette |
| C-x C-f | Quick open file |
| C-x d | Open Dired (directory editor) |
| C-x C-s | Save file |
| C-x s | Save all files |
| C-x k | Close active editor |
| C-x b | Switch to recent editor |
| C-x 3 | Split editor right |
| C-x 2 | Split editor down |
| C-x 1 | Close other editors in group |
| C-x 0 | Close all editors |
| C-x o | Focus next editor group |
| C-x | Previous editor |
| C-x | Next editor |
| C-x C- | Navigate back |
| C-x C- | Navigate forward |
| C-/ | Undo |
| C-y | Paste |
| C-w | Cut (with selection) |
| M-w | Copy (with selection) |
| C-; | Toggle comment |
| M-c | Capitalize word and move next |
| M-l | Lowercase word and move next |
| M-u | Uppercase word and move next |
| M-< | Beginning of buffer |
| M-> | End of buffer |
| M-S-% | Query replace (interactive) |
| C- | Delete word left |
defaults write -g ApplePressAndHoldEnabled -bool false
Then restart VS Code.
Headings
| Key | Action |
|---|---|
| M- | Promote heading/subtree |
| M- | Demote heading/subtree |
| M-S- | Promote subtree (not in table) |
| M-S- | Demote subtree (not in table) |
| M- | Move heading/subtree up |
| M- | Move heading/subtree down |
| C- | Insert new heading |
| s- | (Mac) Insert new heading |
| C-c @ | Mark (select) subtree |
| C-c C-x t | Insert inline task |
| C-c C-x i | Add ID to heading |
| C-c C-w | Refile subtree to target |
| C-c M-w | Copy subtree to refile target |
Items
| Key | Action |
|---|---|
| C-c C-t | Cycle TODO state |
| C-c C-c | Toggle checkbox (not in src block) |
| C-c C-d | Insert due date (DEADLINE) |
| C-c C-s | Insert scheduled date (SCHEDULED) |
Timestamps
| Key | Action |
|---|---|
| C-c . | Insert timestamp |
| C-c , | Insert inactive timestamp |
| C-c C-r | Add repeater to timestamp |
| S- | Shift timestamp up |
| S- | Shift timestamp down |
| S- | Shift timestamp left (no selection) |
| S- | Shift timestamp right (no selection) |
Tables
| Key | Action |
|---|---|
| C-c \vert | Create table |
| C-c S-\ | Create table (alternative) |
| C-c - | Insert table separator row |
| C-c ^ | Sort table by column |
| C-c S-6 | Sort table by column (alt) |
| C-c C-c | Recalculate table (on TBLFM line) |
| C-c * | Recalculate table (alternative) |
| C-c S-8 | Recalculate table (alt) |
| C-c C-e t | Export table |
| M- | Insert row below |
| M-S- | Insert row above |
| M-S- | Insert row above (alt) |
| M-S- | Insert row below (alt) |
| M-S- | Delete row |
| M-S- | Insert column right (in table) |
| M-S- | Delete column (in table) |
Source Blocks (Babel)
Execution
| Key | Action |
|---|---|
| C- | Execute source block |
| s- | (Mac) Execute source block |
| C-c C-c | Execute source block (in src block) |
| S- | Execute and move to next block |
Advanced Babel Operations
| Key | Action |
|---|---|
| C-c C-v t | Tangle source blocks |
| C-c C-v p | Execute all blocks to point |
| C-c C-v i | Execute inline code |
| C-c C-v q | Queue block for execution |
Export
| Key | Action |
|---|---|
| C-c C-e | Export dispatcher (show menu) |
| C-c C-e h h | Export to HTML |
| C-c C-e h o | Export to HTML and open |
| C-c C-e l l | Export to LaTeX |
| C-c C-e l o | Export to LaTeX and open |
| C-c C-e l p | Export to PDF |
| C-c C-e l v | Open LaTeX preview |
| C-c C-e l s | LaTeX forward sync |
| C-c C-e m m | Export to Markdown |
Links
| Key | Action |
|---|---|
| C-c C-l | Insert link |
| C-c C-o | Open link |
| Open link (when on link) | |
| F10 | Insert screenshot |
Citations & References
| Key | Action |
|---|---|
| C-c ] | Insert citation |
| C-c z | Insert citation from Zotero |
| C-u C-c ] | Insert cross-reference |
| S- | Transpose citation left (on citation) |
| S- | Transpose citation right (on citation) |
| S- | Sort citations (on citation) |
| S- | Sort citations by year (on citation) |
| C-S-k | Delete citation (on citation) |
| s-S-k | (Mac) Delete citation |
Text Markup
| Key | Alt Key (Mac: C-M) | Action |
|---|---|---|
| C-c b | M-b (C-M-b) | Bold |
| C-c i | M-i (C-M-i) | Italic |
| C-c _ | M-u (C-M-u) | Underline |
| C-c ` | M-c (C-M-c) | Code (inline) |
| C-c = | M-v (C-M-v) | Verbatim |
| C-c + | M-x (C-M-x) | Strikethrough |
| M-- (C-M--) | Subscript | |
| M-= (C-M-=) | Superscript | |
| C-c ' | Command (Emacs-style, non-standard) |
Edit Marks (Track Changes)
| Key | Action |
|---|---|
| C-c e i | Mark insertion |
| C-c e d | Mark deletion |
| C-c e c | Add comment |
| C-c e t | Mark typo |
| C-c e a | Accept edit mark |
| C-c e r | Reject edit mark |
| C-c e ] | Next edit mark |
| C-c e [ | Previous edit mark |
| C-c e s | Show edit marks summary |
✅ Mark Ring (Emacs-style)
Emacs-style mark and region commands.
| Key | Action |
|---|---|
| C-Space | Set mark at point |
| C-g | Cancel selection |
| C-c Space | Push mark to ring |
| C-u C-Space | Pop mark from local ring |
| Ctrl+U Ctrl+Space | Pop from local ring (alt) |
| C-x C-Space | Pop mark from global ring |
| Ctrl+X Ctrl+Space | Pop from global ring (alt) |
| C-x C-x | Exchange point and mark |
| C-c m s | Show mark ring |
Speed Commands
Speed commands are single-key shortcuts available when the cursor is at the beginning of a heading (the first character of the heading line). They must be enabled in settings (scimax.speedCommands.enabled).
Visibility Speed Commands
| Key | Action |
|---|---|
| Toggle fold (same as regular tab) | |
| c | Cycle global fold |
| C | Show children only |
| o | Overview (collapse all) |
| 1 | Show level 1 headings |
| 2 | Show level 2 headings |
| 3 | Show level 3 headings |
| 0 | Show all headings |
| N | Narrow to subtree |
Structure Editing Speed Commands
| Key | Action |
|---|---|
| l | Promote heading only |
| r | Demote heading only |
| L | Promote subtree |
| R | Demote subtree |
| U | Move subtree up |
| D | Move subtree down |
"TODO" & Content Speed Commands
| Key | Action |
|---|---|
| t | Cycle TODO state |
| d | Insert DEADLINE |
| s | Insert SCHEDULED |
| e | Set effort estimate |
| : | Set tags |
| P | Set property |
| I | Clock in |
| O | Clock out |
Editing Speed Commands
| Key | Action |
|---|---|
| k | Kill (cut) subtree |
| y | Yank (paste) subtree |
| w | Refile subtree |
| W | Clone subtree |
| m | Mark (select) subtree |
| @ | Mark subtree (alt) |
| ^ | Sort entries |
| a | Archive subtree |
| A | Toggle archive tag |
| $ | Archive to sibling |
Other Speed Commands
| Key | Action |
|---|---|
| ? | Show speed commands help |
| / | Show speed commands help |
✅ BibTeX Speed Commands
Speed commands for BibTeX files, active at column 0 of @entry lines (e.g., @article{, @book{).
✅ Formatting
| Key | Action |
|---|---|
| s | Sort fields |
| d | Downcase entry |
| t | Title case title |
| S | Sentence case title |
| c | Clean/format entry |
✅ Wrap/Strip Braces (Case Protection)
| Key | Action |
|---|---|
| C-S-] | Wrap selection or word at cursor in braces |
| C-S-[ | Strip braces from selection or word |
Wraps text in {} for case protection in BibTeX titles (e.g., {NASA}, {Python}). Works anywhere in the file, not just at entry start.
✅ Access
| Key | Action |
|---|---|
| o | Open PDF |
| u | Open URL/DOI |
| N | Open notes |
| g | Google Scholar |
| x | CrossRef |
| w | Web of Science |
✅ OpenAlex Integration
| Key | Action |
|---|---|
| C | Show citing works (OpenAlex) |
| R | Show related works (OpenAlex) |
| r | Show references (OpenAlex) |
✅ Actions
| Key | Action |
|---|---|
| y | Copy citation key |
| b | Copy BibTeX entry |
| B | Strip braces from entry |
| k | Delete entry |
| K | Generate citation key |
| U | Update from web |
| N | Open notes for entry |
| A | Toggle journal abbreviation |
| ? | Show help |
✅ Toggle Speed Commands
| Key | Action |
|---|---|
| C-c C-x s | Toggle speed commands on/off |
✅ Additional Notes
✅ Context-Dependent Keybindings
Many keybindings are context-aware and behave differently depending on cursor position:
C-c C-c toggles checkboxes normally, executes source blocks inside code blocks, and recalculates tables on TBLFM lines
S-
keys modify timestamps normally, but transpose/sort citations when on a citation M-S-
/M-S- promote/demote subtrees normally, but delete/insert columns when in a table opens links when cursor is on a link
✅ When Conditions
Some keybindings only work in specific contexts:
Org-mode/Markdown files: Most document structure commands
On headings: Folding, promotion, demotion
In tables: Table-specific commands
In source blocks: Block execution
At heading start: Speed commands
✅ Mac vs Windows/Linux
Most keybindings use C- (Ctrl) on all platforms to match Emacs conventions. Exceptions where Mac uses s- (Cmd):
s-S-j (journal)
s-
(execute/insert heading) s-S-k (delete citation)
s-S-r (reload window)
C-s-v (database menu)
✅ Quick Reference Card
✅ Most Common Commands
| Command | Keybinding |
|---|---|
| Open journal | C-S-j |
| Execute code block | C- |
| Cycle TODO | C-c C-t |
| Insert timestamp | C-c . |
| Insert link | C-c C-l |
| Insert citation | C-c ] |
| Export dispatcher | C-c C-e |
| Jump to heading | C-c C-j |
| Fuzzy search | C-c s |
| Hydra menu | C-c m |
✅ Most Common Speed Commands
| Speed Key | Action |
|---|---|
| n/p | Next/Previous heading |
| f/b | Forward/Back sibling |
| u | Up to parent |
| j | Jump to heading |
| t | Cycle TODO |
| l/r | Promote/Demote subtree |
✅ Further Help
Use C-c m to open the Hydra menu for guided command discovery
Use M-x to search all commands by name
Enable speed commands help with ? when at heading start
See Documentation Index for comprehensive guides