ekphosv0.20.0

Keybindings

Complete keyboard reference for ekphos

Ekphos uses vim-style keybindings throughout. Press ? to view the help dialog.

Global

KeyAction
j / kNavigate down/up
ggGo to first item
GGo to last item
Tab or lNext panel (Sidebar → Content → Outline)
Shift+Tab or hPrevious panel
?Show help
qQuit
Ctrl+bToggle sidebar
Ctrl+oToggle outline
Ctrl+kQuick open (search files and content)
Ctrl+fFind in buffer (search current note)
Ctrl+gOpen graph view
Ctrl+zToggle zen mode (hide both panels)
Ctrl+mToggle frontmatter visibility (Content panel)
RReload files
Ctrl+Shift+RReload config and theme

Navigate between previously visited notes, similar to browser back/forward:

KeyAction
-Go back to previous note
=Go forward to next note

Navigation history is recorded when you: - Click or press Enter on a note in the sidebar - Press e to edit a note - Follow a WikiLink - Open a note from the graph view

KeyAction
nCreate new note
NCreate new folder
EnterOpen note / Toggle folder
rRename
dDelete
xCut (for move)
pPaste (move cut item)
eEdit note
/Search notes
sCycle sort mode

Move/Relocate Files

Move notes and folders using vim-style cut/paste:

KeyAction
xCut selected note or folder
pPaste (move) to current location
EscCancel cut operation

How to move a file:

  1. Select the note or folder you want to move
  2. Press x to cut it (the item will appear dimmed/italic)
  3. Navigate to the destination folder
  4. Press p to paste (move the item there)

Wiki Links Update Automatically: When you move a note, ekphos automatically updates all wiki links ([[note]]) in your vault that reference the moved note. Links with headings ([[note#section]]) and aliases ([[note|alias]]) are preserved.

Visual feedback:

  • Cut items appear dimmed and italic in the sidebar
  • Status message shows "Cut: filename" when cutting
  • Status message shows "Moved: filename" after successful move

Error handling:

  • Moving to the same location shows "Already in this location"
  • If a file with the same name exists at the destination, shows an error
  • Moving a folder into itself is prevented

Sort Modes

Press s to cycle through sorting options. The current mode is displayed in the sidebar header (e.g., Notes (5) [A→Z]).

ModeLabelDescription
Name A→ZA→ZAlphabetical ascending
Name Z→AZ→AAlphabetical descending
Modified OldestMod↑Oldest modified first
Modified NewestMod↓Newest modified first
Created OldestCre↑Oldest created first
Created NewestCre↓Newest created first

Folders are always sorted first, then notes within each folder follow the selected sort order.

Content View

KeyAction
j / kScroll down/up
Ctrl+d / Ctrl+uHalf page down/up
ggGo to top
GGo to bottom
SpaceToggle task checkbox / Open link / Toggle details
] / [Navigate between links (and task checkbox)
Enter / oOpen image in viewer
Shift+J / Shift+KToggle floating cursor mode

Floating cursor mode: Cursor moves freely within the visible area. The view only scrolls when reaching edges.

Heading Folding

Collapse and expand document sections based on markdown headings (H1-H3) for better navigation:

KeyAction
SpaceToggle fold on current heading
zaToggle fold on current heading (vim-style)
zMFold all headings
zRUnfold all headings
ClickToggle fold when clicking on a heading

Fold indicators:

  • Expanded (children visible)
  • Folded (children hidden)

When a heading is folded, all content until the next heading of equal or higher level is hidden. For example, folding an H2 hides everything until the next H2 or H1.

Only H1-H3 headings support folding, matching the outline panel. Navigating to a folded heading via the outline panel automatically unfolds it.

When a task item contains links (wikilinks, markdown links, or images), you can navigate between the checkbox and links:

- [ ] Check [[Project Notes]]
- [ ] Review [documentation](https://docs.example.com)
- [ ] See screenshot ![preview](image.png)
  • ] / [ cycles between the checkbox and any links in the task
  • When the checkbox is selected (highlighted), pressing Space toggles the task
  • When a link is selected, pressing Space opens it (wikilink navigates, URL opens in browser, image opens in viewer)

The currently selected element (checkbox or link) is highlighted with a yellow background.

Edit Mode - Normal

Mode Changes

KeyAction
iInsert before cursor
aInsert after cursor
IInsert at first non-blank
AInsert at line end
oNew line below
ONew line above
vVisual mode
VVisual Line mode
Ctrl+vVisual Block mode
RReplace mode
:Command mode

Movement

KeyAction
h / lMove left/right
j / kMove down/up
w / WWord/WORD forward
b / BWord/WORD backward
e / EWord/WORD end forward
ge / gEWord/WORD end backward
0Line start
^First non-blank
$Line end
ggFile top
G / {n}GFile bottom / Go to line n
{ / }Paragraph backward/forward
H / M / LScreen top/middle/bottom
%Matching bracket

Find Character

KeyAction
f{char}Find char forward
F{char}Find char backward
t{char}Till char forward
T{char}Till char backward
;Repeat find
,Repeat find (reverse)

Operators

KeyAction
d{motion}Delete
c{motion}Change (delete + insert)
y{motion}Yank (copy)
>{motion}Indent
<{motion}Outdent
dd / cc / yyOperate on whole line
D / CDelete/change to end of line
YYank line (from start to end)

Single Actions

KeyAction
x / XDelete char forward/backward
sSubstitute char (delete + insert)
SSubstitute line
r{char}Replace char
JJoin lines
p / PPaste after/before
uUndo
Ctrl+rRedo
.Repeat last command
~Toggle case

Scrolling

KeyAction
Ctrl+u / Ctrl+dHalf page up/down
Ctrl+b / Ctrl+fFull page up/down
zz / zt / zbCenter/top/bottom cursor

Macros

KeyAction
q{a-z}Start recording macro to register
qStop recording
@{a-z}Play macro from register
@@Repeat last macro

Marks

KeyAction
m{a-zA-Z}Set mark at cursor position
`{a-zA-Z}Jump to mark (exact position)
'{a-zA-Z}Jump to mark (first non-blank)
`` / ''Jump to last jump position
`. / '.Jump to last change position
`^ / '^Jump to last insert position
KeyAction
/Search forward
?Search backward
nNext match (in search direction)
NPrevious match (opposite direction)
*Search word under cursor forward
#Search word under cursor backward

After searching with / or ?, use n to continue in the same direction and N to go in the opposite direction. The search pattern is preserved until you start a new search.

Other

KeyAction
Ctrl+sSave and exit
EscCancel / Reset state

Text Objects

Use with operators (d, c, y, >, <):

Text ObjectDescription
iw / awInner/around word
iW / aWInner/around WORD
i" / a"Inner/around double quotes
i' / a'Inner/around single quotes
i` / a`Inner/around backticks
i( / a( / ib / abInner/around parentheses
i[ / a[Inner/around brackets
i{ / a{ / iB / aBInner/around braces
i< / a<Inner/around angle brackets
ip / apInner/around paragraph

Examples:

  • diw - Delete inner word
  • ci" - Change inside double quotes
  • yap - Yank around paragraph
  • >ip - Indent paragraph

Text Object Seeking: For bracket text objects ((), [], {}, <>), if the cursor is not inside brackets, ekphos will seek forward on the current line to find the next opening bracket. This means ci( works even when the cursor is before the parentheses.

Count Prefix

Prefix any motion or operator with a number:

  • 5j - Move down 5 lines
  • 3w - Move forward 3 words
  • 2dd - Delete 2 lines
  • 10G - Go to line 10

Command Mode

Press : to enter command mode.

CommandAction
:wSave
:qQuit (exit edit mode)
:wqSave and quit
:q!Quit without saving
:{n}Go to line n
:%s/pat/rep/gSubstitute all occurrences

Edit Mode - Insert

KeyAction
EscExit to normal mode
Ctrl+wDelete word backward
Ctrl+uDelete to line start
Ctrl+sSave and exit
[[Trigger wiki link autocomplete

When the autocomplete popup is open:

KeyAction
/ Navigate suggestions
Enter / TabInsert selected
EscClose
TypeFilter suggestions

Edit Mode - Visual

Ekphos supports three visual selection modes, matching vim's behavior:

Entering Visual Modes

KeyModeDescription
vVISUALCharacter-wise selection
VV-LINELine-wise selection (selects entire lines)
Ctrl+vV-BLOCKBlock/rectangular selection

Visual Mode (Character-wise)

Press v to start character-wise selection. The selection extends from the anchor point to the cursor position, spanning across lines if needed.

Example: Selecting "world! How are" with v
Hello, [world!
How are] you?

Visual Line Mode

Press V to start line-wise selection. Entire lines are selected regardless of cursor column position.

Example: Selecting two lines with V
[Hello, world!]
[How are you?]

Visual Block Mode

Press Ctrl+v to start block/rectangular selection. Selects a rectangular region defined by the anchor and cursor positions. Each row only highlights the columns within the block boundaries.

Example: Selecting a column with Ctrl+v
192.168.[33].0
192.168.[22].0
192.168.[66].0

Visual Block mode is useful for selecting columns of text, such as IP address octets, table columns, or aligned data.

Movement in Visual Modes

KeyAction
h / j / k / lExtend selection
w / bExtend by word
0 / $Extend to line start/end
gg / GExtend to file top/bottom

Actions in Visual Modes

KeyAction
yYank (copy) selection
d / xDelete selection
EscCancel selection
Ctrl+sSave and exit

Edit Mode - Replace

Press R in normal mode to enter Replace mode. Characters you type overwrite existing text instead of inserting.

KeyAction
Any characterOverwrite character at cursor and move right
BackspaceMove cursor left (does not restore original)
EscExit to normal mode

Replace mode is useful for fixing typos or overwriting specific text without changing the overall structure. At end of line, new characters are appended.

Mouse

ActionResult
ClickPosition cursor
DragSelect text (enters visual mode)
Right-clickContext menu
Drag to edgeAuto-scroll

Context menu options: Copy, Cut, Paste, Select All

Press / in the sidebar to search notes by filename.

KeyAction
TypeFilter notes
/ j / Ctrl+nNext match
/ k / Ctrl+pPrevious match
EnterSelect and close
EscCancel

Border colors:

  • Yellow: Typing
  • Green: Matches found
  • Red: No matches

Press Ctrl+f to search within the current note (works in both Normal and Edit modes). In Edit mode, you can also use vim-style / (forward) or ? (backward) to start a search.

KeyAction
TypeSearch text (live results)
/ Tab / Enter / Ctrl+nJump to next match
/ Shift+Tab / Ctrl+pJump to previous match
Ctrl+cToggle case sensitivity
EscClose search

After closing the search dialog, use n and N in Edit mode to continue navigating through matches.

Features:

  • Search dialog appears in top-right corner
  • All matches are highlighted in the buffer
  • Current match has a distinct highlight color
  • Auto-scrolls to first match
  • Match counter shows progress (e.g., "3/15")

Border colors:

  • Blue: Typing (no query yet)
  • Green: Matches found
  • Red: No matches

Quick Open

Press Ctrl+k to open the quick open dialog. This provides two search modes:

  • Files - Search notes by title (fuzzy matching)
  • Content - Search within note contents (full-text search)
KeyAction
/ Switch between Files and Content
/ Tab / Ctrl+j / Ctrl+nNext result
/ Shift+Tab / Ctrl+k / Ctrl+pPrevious result
EnterOpen selected note
EscClose dialog
TypeFilter results

Files Mode

Searches note titles using fuzzy matching. Results show:

  • Note title
  • Folder path (if note is in a subdirectory)

Content Mode

Searches within note contents. Results show:

  • Note title with line number (e.g., :L42)
  • Matched line with query highlighted

Content search runs in the background to keep the UI responsive. A "Searching..." indicator appears while results are loading.

When selecting a content search result, ekphos navigates to the note and scrolls to the matching line.

Dialogs

Delete Confirmation

KeyAction
y / YConfirm
n / N / EscCancel

Input Dialogs (Rename, Create)

KeyAction
EnterConfirm
EscCancel
BackspaceDelete character

On this page