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>dDelete the note
<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
:trashDelete the note
: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

Deleting a note is :trash, not :d. It keeps the old name because :d and :delete are vim's own commands for deleting lines, and Halcyon doesn't take vim's keys away from you.

/ means two things, and the mode decides ​

In normal mode / is vim's search, untouched. In insert mode, a / at the start of a line opens the slash menu for tables, callouts and code blocks. They can't collide: one is a command you press, the other is a character you type.

Esc closes that menu and leaves you in insert mode; a second Esc returns you to normal. Dismissing it inserts nothing.

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
ddDelete the note
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.