Skip to main content

Documentation Index

Fetch the complete documentation index at: https://vorto-editor.dev/llms.txt

Use this file to discover all available pages before exploring further.

Vorto ships with a vim-style keymap out of the box. Every binding listed here is active in Normal mode unless noted otherwise. You can override any binding in your config.toml using [[bind]] entries — see the configuration documentation for details.

Cursor movement

KeyAction
h / Move left
l / Move right
j / Move down
k / Move up
0 / HomeMove to the start of the line
$ / EndMove to the end of the line
^Move to the first non-blank character of the line

Word movement

KeyAction
wMove forward to the start of the next word
bMove backward to the start of the previous word
eMove forward to the end of the current or next word
WMove forward to the start of the next WORD (whitespace-delimited)
BMove backward to the start of the previous WORD
EMove forward to the end of the current or next WORD

File and viewport movement

KeyAction
ggGo to the start of the file
GGo to the end of the file
HMove to the top of the visible viewport
MMove to the middle of the visible viewport
LMove to the bottom of the visible viewport
Ctrl-dScroll half a page down
Ctrl-uScroll half a page up
Ctrl-fScroll a full page down
Ctrl-bScroll a full page up
{Move to the previous blank line (paragraph back)
}Move to the next blank line (paragraph forward)
%Jump to the matching bracket

Character find

KeyAction
f{c}Move forward to the next occurrence of character c on the line
F{c}Move backward to the previous occurrence of character c on the line
t{c}Move forward, stopping one character before c
T{c}Move backward, stopping one character after c
;Repeat the last character find in the same direction
,Repeat the last character find in the opposite direction
KeyAction
/Open a forward search prompt
?Open a backward search prompt
nJump to the next search match
NJump to the previous search match
*Search forward for the word under the cursor
#Search backward for the word under the cursor

Entering Insert mode

KeyAction
iInsert before the cursor
aAppend after the cursor
IInsert at the first non-blank character of the line
AAppend at the end of the line
oOpen a new line below and enter Insert
OOpen a new line above and enter Insert
sDelete the character under the cursor and enter Insert
SClear the current line and enter Insert
CDelete from the cursor to end of line and enter Insert

Normal-mode editing

Operators

Operators wait for a motion or text object before acting. Type the operator, then a motion (e.g. dw deletes a word) or double the operator to act on the current line (e.g. dd).
KeyOperator
dDelete
yYank (copy)
cChange (delete and enter Insert)
>Indent right
<Dedent left

Standalone editing commands

KeyAction
xDelete the character under the cursor
pPaste after the cursor
uUndo
Ctrl-rRedo (bind with action redo in config if not already set)
DDelete from the cursor to end of line
YYank the current line
JJoin the next line into the current line
~Toggle the case of the character under the cursor
r{c}Replace the character under the cursor with c
.Repeat the last change

Text objects

Text objects are valid after an operator and require a scope (i for inner, a for around):
Object keyTarget
wWord
pParagraph
"Double-quoted string
'Single-quoted string
( / ) / bParentheses
{ / } / BBraces
[ / ]Brackets
fFunction (tree-sitter)
cClass (tree-sitter)
aArgument / parameter (tree-sitter)
Example: diw deletes the inner word; ca" changes around a double-quoted string.

Visual mode

KeyAction
vEnter Visual (character) mode
VEnter Visual Line mode
Ctrl-VEnter Visual Block mode
EscReturn to Normal mode
In all Visual modes the same motions and text objects apply for extending the selection. Operators (d, y, c, >, <) act on the selection when pressed.

g prefix (goto bindings)

Press g in Normal mode to enter the goto sub-context:
Key sequenceAction
ggGo to the start of the file
g_Move to the last non-blank character of the line
geMove to the end of the previous word
gEMove to the end of the previous WORD
gsMove to the first non-blank character (same as ^)
glMove to the end of the line (same as $)
gcMove to the middle of the viewport (same as M)
gbMove to the bottom of the viewport (same as L)
gdGo to definition (LSP)
gDGo to declaration (LSP)
giGo to implementation (LSP)
grFind references (LSP)
gwJump label (easymotion-style two-character hop)
gnSelect the next search match and enter Visual mode
gNSelect the previous search match and enter Visual mode
gASelect the whole buffer (equivalent to ggVG)

z prefix (viewport scroll)

Key sequenceAction
zzCenter the cursor’s line in the viewport
ztScroll so the cursor’s line is at the top of the viewport
zbScroll so the cursor’s line is at the bottom of the viewport

Leader key bindings (Space)

The leader key is Space. Press Space in Normal mode, then the second key:
Key sequenceAction
Space fOpen the fuzzy file picker (respects .gitignore, hides dotfiles)
Space FOpen the fuzzy file picker including hidden/dotfile paths
Space lFuzzy search lines in the current buffer
Space /Fuzzy search across all workspace files
Space bOpen the buffer picker
Space dOpen the diagnostics picker (current buffer)
Space DOpen the diagnostics picker (entire workspace)
Space rRename the symbol under the cursor (LSP)
Space aShow code actions at the cursor (LSP)
Space K / Space kShow hover documentation (LSP)
Space cToggle a line comment
Space *Seed the search pattern from the word under the cursor (forward, keep position)
Space #Seed the search pattern from the word under the cursor (backward, keep position)
Space ,Clear all extra multi-cursors
Space wEnter the window sub-leader (see below)

Window bindings

Space w sub-leader

Key sequenceAction
Space w vSplit the pane to the right (vertical split)
Space w hSplit the pane below (horizontal split)
Space w cClose the active pane
Space w oCycle to the next pane
Space w ←Focus the pane to the left
Space w →Focus the pane to the right
Space w ↑Focus the pane above
Space w ↓Focus the pane below

Ctrl-W prefix

Key sequenceAction
Ctrl-W h / Focus the pane to the left
Ctrl-W l / Focus the pane to the right
Ctrl-W j / Focus the pane below
Ctrl-W k / Focus the pane above
Ctrl-W wCycle to the next pane
Ctrl-W vSplit the pane to the right
Ctrl-W sSplit the pane below
Ctrl-W c / qClose the active pane

Bracket navigation (] and [ prefixes)

Key sequenceAction
]dJump to the next LSP diagnostic in the buffer
[dJump to the previous LSP diagnostic in the buffer

Multi-cursor

KeyAction
+Add a cursor at the next occurrence of the word under the cursor
-Remove the most recently added extra cursor
Shift-↓Add a cursor on the line below (requires Kitty keyboard protocol)
Space ,Clear all extra cursors

Other Normal-mode keys

KeyAction
KShow hover documentation for the symbol under the cursor (LSP)
:Open the command prompt