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

KeyAction
C-S-jOpen today's journal entry
s-S-j(Mac) Open today's journal entry
C-c mShow Hydra main menu
C-c C-mShow Hydra context menu
C-c dShow database hydra menu
C-c cQuick capture
C-c tQuick capture TODO
C-M-vShow database menu
C-s-v(Mac) Show database menu
C-S-rReload 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-gShow link graph for current file

✅ Help Commands

Emacs-style help commands for discovering keybindings and commands.

KeyAction
C-h kDescribe key - type a key sequence to see its command
C-h bList keybindings - browse all keybindings
C-h fDescribe command - select a command to see its keys
C-h vDescribe variable - view setting details
C-h aApropos - 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

KeyAction
M-xShow command palette
C-x C-fQuick open file
C-x dOpen Dired (directory editor)
C-x C-sSave file
C-x sSave all files
C-x kClose active editor
C-x bSwitch to recent editor
C-x 3Split editor right
C-x 2Split editor down
C-x 1Close other editors in group
C-x 0Close all editors
C-x oFocus next editor group
C-x Previous editor
C-x Next editor
C-x C-Navigate back
C-x C-Navigate forward
C-/Undo
C-yPaste
C-wCut (with selection)
M-wCopy (with selection)
C-;Toggle comment
M-cCapitalize word and move next
M-lLowercase word and move next
M-uUppercase 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.

Navigation

KeyAction
Toggle fold (on heading)
S-Cycle global fold
C-c C-jJump to heading
C-c C-nNext heading
C-c C-pPrevious heading
C-c C-fNext sibling heading
C-c C-bPrevious sibling heading
C-c uGo to parent heading
C-Previous source block
C-Next source block
M-S-,Beginning of buffer
M-S-.End of buffer

Note: Navigation keybindings (C-c C-n, C-c C-p, C-c C-f, C-c C-b, C-c C-j) work in org-mode, markdown, and LaTeX files with consistent behavior.

Headings

KeyAction
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 tInsert inline task
C-c C-x iAdd ID to heading
C-c C-wRefile subtree to target
C-c M-wCopy subtree to refile target

Items

KeyAction
C-c C-tCycle TODO state
C-c C-cToggle checkbox (not in src block)
C-c C-dInsert due date (DEADLINE)
C-c C-sInsert scheduled date (SCHEDULED)

Timestamps

KeyAction
C-c .Insert timestamp
C-c ,Insert inactive timestamp
C-c C-rAdd repeater to timestamp
S-Shift timestamp up
S-Shift timestamp down
S-Shift timestamp left (no selection)
S-Shift timestamp right (no selection)

Tables

KeyAction
C-c \vertCreate table
C-c S-\Create table (alternative)
C-c -Insert table separator row
C-c ^Sort table by column
C-c S-6Sort table by column (alt)
C-c C-cRecalculate table (on TBLFM line)
C-c *Recalculate table (alternative)
C-c S-8Recalculate table (alt)
C-c C-e tExport 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

KeyAction
C-Execute source block
s-(Mac) Execute source block
C-c C-cExecute source block (in src block)
S-Execute and move to next block

Navigation & Manipulation

KeyAction
C-Previous source block
C-Next source block
C-c C-bJump to source block
C-c C-v gJump to source block (alt)
C-c C-v nNext source block (alt)
C-c nNext source block
C-c C-,Insert source block below
C-c -Split source block at cursor
Esc aInsert block above (in src)
Esc bInsert block below (in src)
Esc -Split block (in src)
S-Execute and move to next block
M-S-Execute and insert new block

Advanced Babel Operations

KeyAction
C-c C-v tTangle source blocks
C-c C-v pExecute all blocks to point
C-c C-v iExecute inline code
C-c C-v qQueue block for execution

Export

KeyAction
C-c C-eExport dispatcher (show menu)
C-c C-e h hExport to HTML
C-c C-e h oExport to HTML and open
C-c C-e l lExport to LaTeX
C-c C-e l oExport to LaTeX and open
C-c C-e l pExport to PDF
C-c C-e l vOpen LaTeX preview
C-c C-e l sLaTeX forward sync
C-c C-e m mExport to Markdown

Citations & References

KeyAction
C-c ]Insert citation
C-c zInsert 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-kDelete citation (on citation)
s-S-k(Mac) Delete citation

Text Markup

KeyAlt Key (Mac: C-M)Action
C-c bM-b (C-M-b)Bold
C-c iM-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)

Search & Navigation

Fuzzy Search (Swiper-style)

KeyAction
C-c sFuzzy search in current buffer
C-c S-sFuzzy search in open files
C-c M-sFuzzy search outline/headings

Jump (Avy-style)

KeyAction
C-c j cJump to character
C-c j jJump to 2 characters
C-c j wJump to word
C-c j lJump to line
C-c j oJump to symbol/outline
C-c j sJump to subword

Projectile

KeyAction
C-c p pSwitch project
C-c p fFind file in project
C-c p sSearch in project
C-c p dOpen project root directory
C-c p aAdd project
C-c p S-fFind file in all known projects

✅ Database and Agenda

KeyAction
C-c a aAgenda menu
C-c a wWeek agenda
C-c a mMonth agenda
C-c a tTODO list
C-c a dDeadlines
C-c dDatabase hydra menu
C-c d fBrowse indexed files
C-c d sSearch database
C-c d hSearch headings
C-c d tShow TODOs
C-c d aShow agenda

✅ Templates

KeyAction
C-c C-t iQuick insert template
C-c C-t nNew file from template
C-c C-t lList templates
C-c C-t sCreate template from selection

✅ Spelling

KeyAction
C-c ;Go to previous spelling error
C-c S-;Go to next spelling error

Edit Marks (Track Changes)

KeyAction
C-c e iMark insertion
C-c e dMark deletion
C-c e cAdd comment
C-c e tMark typo
C-c e aAccept edit mark
C-c e rReject edit mark
C-c e ]Next edit mark
C-c e [Previous edit mark
C-c e sShow edit marks summary

✅ Mark Ring (Emacs-style)

Emacs-style mark and region commands.

KeyAction
C-SpaceSet mark at point
C-gCancel selection
C-c SpacePush mark to ring
C-u C-SpacePop mark from local ring
Ctrl+U Ctrl+SpacePop from local ring (alt)
C-x C-SpacePop mark from global ring
Ctrl+X Ctrl+SpacePop from global ring (alt)
C-x C-xExchange point and mark
C-c m sShow 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).

Navigation Speed Commands

KeyAction
nNext heading (same level)
pPrevious heading (same level)
fNext sibling heading
bPrevious sibling heading
uParent heading (up one level)
jJump to heading (quick picker)
gGoto menu (additional navigation)

Visibility Speed Commands

KeyAction
Toggle fold (same as regular tab)
cCycle global fold
CShow children only
oOverview (collapse all)
1Show level 1 headings
2Show level 2 headings
3Show level 3 headings
0Show all headings
NNarrow to subtree

Structure Editing Speed Commands

KeyAction
lPromote heading only
rDemote heading only
LPromote subtree
RDemote subtree
UMove subtree up
DMove subtree down

"TODO" & Content Speed Commands

KeyAction
tCycle TODO state
dInsert DEADLINE
sInsert SCHEDULED
eSet effort estimate
:Set tags
PSet property
IClock in
OClock out

Editing Speed Commands

KeyAction
kKill (cut) subtree
yYank (paste) subtree
wRefile subtree
WClone subtree
mMark (select) subtree
@Mark subtree (alt)
^Sort entries
aArchive subtree
AToggle archive tag
$Archive to sibling

Other Speed Commands

KeyAction
?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{).

✅ Navigation

KeyAction
nNext entry
pPrevious entry
jJump to entry

✅ Formatting

KeyAction
sSort fields
dDowncase entry
tTitle case title
SSentence case title
cClean/format entry

✅ Wrap/Strip Braces (Case Protection)

KeyAction
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

KeyAction
oOpen PDF
uOpen URL/DOI
NOpen notes
gGoogle Scholar
xCrossRef
wWeb of Science

✅ OpenAlex Integration

KeyAction
CShow citing works (OpenAlex)
RShow related works (OpenAlex)
rShow references (OpenAlex)

✅ Actions

KeyAction
yCopy citation key
bCopy BibTeX entry
BStrip braces from entry
kDelete entry
KGenerate citation key
UUpdate from web
NOpen notes for entry
AToggle journal abbreviation
?Show help

✅ Toggle Speed Commands

KeyAction
C-c C-x sToggle 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)

✅ LaTeX Navigation

These keybindings are active in LaTeX files (.tex):

✅ Section Navigation

KeyAction
C-c C-nNext section
C-c C-pPrevious section
C-c C-uParent section
C-c C-fNext sibling section
C-c C-bPrevious sibling section
C-c C-jJump to any section
C-c jJump to any section (alt)

✅ Structure Editing

KeyAction
Alt+LeftPromote section
Alt+RightDemote section
Alt+Shift+LeftPromote subtree
Alt+Shift+RightDemote subtree
Alt+UpMove section up
Alt+DownMove section down
C-c @Mark (select) section

✅ Environment Commands

KeyAction
C-c C-eSelect environment
C-c eChange environment type
C-c wWrap selection in environment
C-c *Toggle starred variant
C-c %Jump to matching begin/end
C-c lJump to label
C-c C-lAdd label to environment

✅ Folding

KeyAction
TabToggle fold
Shift+TabCycle global fold

✅ Compile and Preview

KeyAction
C-c C-cCompile document
C-c vView PDF (built-in panel)
C-c C-vView PDF (external viewer)
C-c C-aCompile and view PDF
C-c gSyncTeX forward search
C-c C-kClean auxiliary files

See LaTeX Navigation and Structure for complete documentation.

✅ LaTeX Speed Commands

Speed commands active at the start of \section, \subsection, or \begin{} lines:

Section Speed Commands

KeyAction
nNext section
pPrevious section
fForward sibling
bBackward sibling
uUp to parent
jJump to section
UMove section up
DMove section down
<Promote section
>Demote section
IInsert section
NNarrow to section
WWiden (show all)
/Show help

Environment Speed Commands

KeyAction
nNext environment
pPrevious environment
jJump to environment
sSelect environment
cChange environment
kKill environment
wWrap in environment
uUnwrap environment
*Toggle starred variant
lAdd label
CAdd caption
iEnvironment info
/Show help

✅ Quick Reference Card

✅ Most Common Commands

CommandKeybinding
Open journalC-S-j
Execute code blockC-
Cycle TODOC-c C-t
Insert timestampC-c .
Insert linkC-c C-l
Insert citationC-c ]
Export dispatcherC-c C-e
Jump to headingC-c C-j
Fuzzy searchC-c s
Hydra menuC-c m

✅ Most Common Speed Commands

Speed KeyAction
n/pNext/Previous heading
f/bForward/Back sibling
uUp to parent
jJump to heading
tCycle TODO
l/rPromote/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

✅ Navigation