Appearance
Vim
Halcyon's editor is a vim buffer, not a shortcut approximation of one. You get operators, motions, text objects, registers, macros, counts and : ex commands.
Anything you know from vim works. ci", 3dd, qq…q@q, %, /pattern, visual block: none of it is a list Halcyon maintains.
j and k move by visual line rather than by logical line, so wrapped prose behaves the way it looks on screen.
Vim can be turned off in Settings → General, and everything else in the app keeps working. The rest of this page assumes it's on.
The Space leader
<Space> is the leader in normal mode, following Neovim convention. It reaches the app actions you'd otherwise leave the keyboard for.
| Keys | What it does |
|---|---|
<Space>f | Command palette |
<Space>/ | Search notes |
<Space>n | New note |
<Space>N | New folder |
<Space>s | Save |
<Space>d | Move the note to the Trash |
<Space>e | Edit view |
<Space>v | Split view |
<Space>p | Preview view |
<Space>o | Open a file |
<Space>t | Toggle light / dark |
<Space>m | Pin or unpin |
<Space>1 <Space>2 <Space>3 | Layout: full / list / editor |
<Space>z | Cycle layout |
<Space>b | Backlinks: notes that link to this one |
<Space>* | Bold (normal and visual) |
<Space>i | Italic (normal and visual) |
<Space>k | Insert link (normal and visual) |
Note
<Space>n makes a note called untitled.md and lets it name itself from your first heading, where ⌘N asks for the title up front. That difference is on purpose: the leader layer exists so you never leave the keyboard, and a dialog would defeat it.
Ex commands
Vim's own semantics wherever vim has an opinion. Each shows its shortest accepted abbreviation.
| Command | Short | What it does |
|---|---|---|
:write | :w | Save now |
:quit | :q | Close the note, or the window in a file window |
:wq | Save and close | |
:xit | :x | Save and close |
:edit | :e | Edit view |
:split | :sp | Split view |
:view | :vie | Preview view |
:only | :on | Collapse to the editor alone |
:all | Bring the panes back | |
:new | New note | |
:trash | Move the note to the Trash | |
:pin | Pin or unpin | |
:open | :op | Open a file from disk |
:reveal | :rev | Reveal the note in Finder |
:theme | Toggle light / dark | |
:find | Command palette | |
:backlinks | Notes that link to this one |
:view is named after vim's own read-only open, which is what preview mode is. :only closes every other window in vim; here it collapses to the editor alone, which is the same intent.
Commands that take an argument
| Command | Short | With an argument | With none |
|---|---|---|---|
:rename | :ren | Renames the file to match the title | Asks for the title |
:mv | Moves the note into that folder | Moves it to the vault root | |
:mkdir | :mk | Creates the folder, parents included | Asks for a name |
:cd | Scopes the note list to that folder | Clears the scope | |
:link | Wraps the selection in a link to that URL | Asks for the URL |
:rename Halcyon Sync renames the file to halcyon-sync.md
:mv work/2026 moves it into work/2026, creating both levels
:cd archive shows only notes under archive/
:cd shows everything again~ means the vault root, in :mv and in the move dialog alike.
Note
Trashing a note is :trash, not :d. :d is a real ex command that deletes lines, and Halcyon doesn't take vim's keys away from you.
The note list is modal too
Focus the list with ⌘2 or ⌃h and these work:
| Key | What it does |
|---|---|
j k | Down, up |
gg G | First note, last note |
dd | Move to the Trash |
p | Pin or unpin |
n | New note |
/ | Jump to the search box |
↵ or l | Open the note and focus the editor |
o | Open it and drop straight into insert mode |
Esc | Clear the selection, then the search |
Esc peels one layer at a time: a live selection goes first, and only a second press clears the search. Clearing the narrowing while a selection was still live would drop rows out from under it.
Two things that aren't vim's fault
⌃h stands down in insert mode. It's the pane-left shortcut everywhere else, but inside insert mode it has to stay backspace.
Duplicate has no chord. ⌘D already adds a cursor at the next occurrence of your selection, and taking it would cost you multi-cursor. Duplicate lives in the menu, the palette and the right-click menu instead.