Skip to content

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.

KeysWhat it does
<Space>fCommand palette
<Space>/Search notes
<Space>nNew note
<Space>NNew folder
<Space>sSave
<Space>dMove the note to the Trash
<Space>eEdit view
<Space>vSplit view
<Space>pPreview view
<Space>oOpen a file
<Space>tToggle light / dark
<Space>mPin or unpin
<Space>1 <Space>2 <Space>3Layout: full / list / editor
<Space>zCycle layout
<Space>bBacklinks: notes that link to this one
<Space>*Bold (normal and visual)
<Space>iItalic (normal and visual)
<Space>kInsert 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.

CommandShortWhat it does
:write:wSave now
:quit:qClose the note, or the window in a file window
:wqSave and close
:xit:xSave and close
:edit:eEdit view
:split:spSplit view
:view:viePreview view
:only:onCollapse to the editor alone
:allBring the panes back
:newNew note
:trashMove the note to the Trash
:pinPin or unpin
:open:opOpen a file from disk
:reveal:revReveal the note in Finder
:themeToggle light / dark
:findCommand palette
:backlinksNotes 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

CommandShortWith an argumentWith none
:rename:renRenames the file to match the titleAsks for the title
:mvMoves the note into that folderMoves it to the vault root
:mkdir:mkCreates the folder, parents includedAsks for a name
:cdScopes the note list to that folderClears the scope
:linkWraps the selection in a link to that URLAsks 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:

KeyWhat it does
j kDown, up
gg GFirst note, last note
ddMove to the Trash
pPin or unpin
nNew note
/Jump to the search box
or lOpen the note and focus the editor
oOpen it and drop straight into insert mode
EscClear 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.

Halcyon is a markdown notes app for macOS.