User guide / Custom key bindings

Bindable action reference

Development reference · View source

This is the list :help key-actions shows, grouped by topic.

  • Modes: N normal, S select, I insert, R replace.
  • Position: continue can be followed by another action in a list; last must end it. See Action sequences .

Mode and page actions

ActionModesPositionDescription
enter-normal-modeN S I RlastReturn to normal mode
open-command-paletteN SlastOpen the command palette
enter-insert-modeN SlastInsert before the selection
enter-replace-modeN SlastReplace text from each selection head
append-afterN SlastInsert after the selection
insert-line-startN SlastInsert at line start
insert-line-endN SlastInsert at line end
open-line-belowN SlastOpen a line below
open-line-aboveN SlastOpen a line above
enter-select-modeN SlastToggle select mode
show-helpN SlastOpen general or contextual Runyte help
open-settingsN SlastOpen editor settings
open-theme-settingsN SlastChoose and save the editor theme

Movement actions

ActionModesPositionDescription
move-leftN S I RcontinueMove left
move-rightN S I RcontinueMove right
move-upN S I RcontinueMove up
move-downN S I RcontinueMove down
move-line-startN S I RcontinueMove to line start
move-line-endN S I RcontinueMove to line end
move-first-non-whitespaceN ScontinueMove to first non-whitespace character
move-file-startN ScontinueMove to file start
move-file-endN ScontinueMove to file end
move-word-forwardN ScontinueMove to next word start
move-word-backwardN ScontinueMove to previous word start
move-word-endN ScontinueMove to next word end
move-long-word-forwardN ScontinueMove to next WORD start
move-long-word-backwardN ScontinueMove to previous WORD start
move-long-word-endN ScontinueMove to next WORD end
goto-next-paragraphN ScontinueGo to the next paragraph
goto-previous-paragraphN ScontinueGo to the previous paragraph
find-next-charN SlastFind next character
find-previous-charN SlastFind previous character
find-till-next-charN SlastFind before next character
find-till-previous-charN SlastFind after previous character
page-upN S I RcontinueMove one page up
page-downN S I RcontinueMove one page down
half-page-upN ScontinueMove half a page up
half-page-downN ScontinueMove half a page down
goto-window-topN ScontinueMove to the top of the view
goto-window-centerN ScontinueMove to the center of the view
goto-window-bottomN ScontinueMove to the bottom of the view
goto-wordN SlastLabel visible words by proximity and jump to one
match-bracketN SlastGo to the matching syntax bracket
jump-backwardN SlastJump to the previous position
jump-forwardN SlastJump to the next position
jump-backward-bufferN SlastJump to the previous buffer or terminal surface
jump-forward-bufferN SlastJump to the next buffer or terminal surface

Editing actions

ActionModesPositionDescription
replace-charN SlastReplace selection with a character
surround-addN SlastSurround selections with a pair
surround-replaceN SlastReplace the surrounding pair
surround-deleteN SlastDelete the surrounding pair
toggle-caseN ScontinueSwitch case of the selection
undoN ScontinueUndo the last change
redoN ScontinueRedo the last change
yankN ScontinueYank the selection or character
yank-lineN ScontinueYank the lines the selection touches
paste-afterN ScontinueReplace the selection, or paste after the caret
paste-beforeN ScontinuePaste before the selection
indentN ScontinueIndent the selected lines
unindentN ScontinueUnindent the selected lines
toggle-commentsN S I RcontinueComment or uncomment the selected lines
delete-selectionN ScontinueDelete the selection or character
change-selectionN SlastChange the selection or character
rotate-selection-contents-forwardN SlastRotate selected text forward
rotate-selection-contents-backwardN SlastRotate selected text backward
trim-trailing-whitespaceN SlastDelete trailing whitespace from every selected line
hard-wrapN SlastHard-wrap the selection
reflowN SlastReflow paragraphs in the selection
join-selectionsN SlastJoin the selected lines with a typed delimiter
join-linesN SlastJoin the selected lines, or the line below, with a space
format-tableN SlastAlign the columns of the selected table

Insert and Replace mode actions

ActionModesPositionDescription
delete-word-backwardI RcontinueDelete the previous word
delete-word-forwardI RcontinueDelete the next word
delete-to-line-startI RcontinueDelete to the start of the line
delete-to-line-endI RcontinueDelete to the end of the line
delete-char-backwardI RcontinueDelete the previous character
delete-char-forwardI RcontinueDelete the next character
insert-newlineI RcontinueInsert a new line
insert-indentI RcontinueInsert configured indentation
insert-other-indentI RcontinueInsert the other indentation style

Selection actions

ActionModesPositionDescription
selection-undoN ScontinueUndo the last selection change
selection-redoN ScontinueRedo the last selection change
select-lineN ScontinueSelect the current line, then extend downward
extend-line-aboveN ScontinueExtend whole lines above
extend-line-belowN ScontinueExtend whole lines below
select-line-upN ScontinueSelect the current line, then extend upward
select-allN ScontinueSelect all text
collapse-selectionN ScontinueCollapse selection to the cursor
flip-selectionN ScontinueFlip the selection anchor and cursor
split-selection-at-line-endsN ScontinuePlace a cursor at the end of every selected line
split-selection-at-line-startsN ScontinuePlace a cursor at the start of every selected line
keep-primary-selectionN ScontinueDrop every selection except the primary
remove-primary-selectionN ScontinueDrop the primary selection
copy-selection-downN ScontinueAdd a cursor on the line below
copy-selection-upN ScontinueAdd a cursor on the line above
copy-selection-down-paddedN ScontinueAdd a cursor on the line below, padding it when needed
copy-selection-up-paddedN ScontinueAdd a cursor on the line above, padding it when needed
rotate-selection-forwardN ScontinueMake the next selection primary
rotate-selection-backwardN ScontinueMake the previous selection primary
keep-matching-selectionsN SlastKeep selections matching a regular expression
remove-matching-selectionsN SlastRemove selections matching a regular expression
align-selectionsN ScontinuePad with spaces so every cursor shares the rightmost column
trim-selectionsN ScontinueTrim whitespace from every selection

Text object actions

ActionModesPositionDescription
select-around-parenthesesN SlastSelect around parentheses
select-inside-parenthesesN SlastSelect inside parentheses
select-around-square-bracketsN SlastSelect around square brackets
select-inside-square-bracketsN SlastSelect inside square brackets
select-around-bracesN SlastSelect around braces
select-inside-bracesN SlastSelect inside braces
select-around-angle-bracketsN SlastSelect around angle brackets
select-inside-angle-bracketsN SlastSelect inside angle brackets
select-around-double-quotesN SlastSelect around double quotes
select-inside-double-quotesN SlastSelect inside double quotes
select-around-single-quotesN SlastSelect around single quotes
select-inside-single-quotesN SlastSelect inside single quotes
select-around-backticksN SlastSelect around backticks
select-inside-backticksN SlastSelect inside backticks
select-inside-wordN SlastSelect the word under the cursor
select-around-wordN SlastSelect the word under the cursor and the space beside it
select-inside-long-wordN SlastSelect the WORD under the cursor
select-around-long-wordN SlastSelect the WORD under the cursor and the space beside it
select-inside-paragraphN SlastSelect the paragraph’s lines
select-around-paragraphN SlastSelect the paragraph’s lines and the blank lines beside them
select-around-closest-delimiterN SlastSelect around the closest delimiter pair
select-inside-closest-delimiterN SlastSelect inside the closest delimiter pair

Syntax tree actions

ActionModesPositionDescription
expand-syntax-selectionN SlastExpand to the enclosing syntax node
shrink-syntax-selectionN SlastShrink the syntax selection
select-syntax-parentN SlastSelect the enclosing syntax node
select-syntax-childN SlastSelect the first child syntax node
select-previous-syntax-siblingN SlastSelect the previous sibling syntax node
select-next-syntax-siblingN SlastSelect the next sibling syntax node
select-syntax-functionN SlastSelect the enclosing function
select-inside-syntax-functionN SlastSelect inside the enclosing function
select-syntax-classN SlastSelect the enclosing class-like item
select-inside-syntax-classN SlastSelect inside the enclosing class-like item
select-syntax-parameterN SlastSelect the enclosing parameter
select-inside-syntax-parameterN SlastSelect inside the enclosing parameter
goto-previous-syntax-functionN SlastGo to the previous function
goto-next-syntax-functionN SlastGo to the next function
goto-previous-syntax-classN SlastGo to the previous class-like item
goto-next-syntax-classN SlastGo to the next class-like item
goto-previous-syntax-parameterN SlastGo to the previous parameter
goto-next-syntax-parameterN SlastGo to the next parameter
document-outlineN SlastOpen the document outline
toggle-syntax-foldN SlastToggle the syntax fold at the cursor
fold-all-syntaxN SlastFold every syntax region
unfold-all-syntaxN SlastUnfold every syntax region

Search actions

ActionModesPositionDescription
searchN SlastSearch for text, ignoring case
search-regexN SlastSearch with a regular expression
search-nextN SlastSelect only the next search match
search-previousN SlastSelect only the previous search match
search-selectionN SlastSelect every match of the selection or word
global-searchN SlastSearch the workspace, ignoring case
global-search-regexN SlastSearch the workspace with a regular expression

View actions

ActionModesPositionDescription
align-view-centerN SlastCenter the cursor line in the view
align-view-topN SlastAlign the cursor line at the top
align-view-bottomN SlastAlign the cursor line at the bottom
align-view-middleN SlastCenter the cursor column in the view
scroll-view-downN SlastScroll the view down
scroll-view-upN SlastScroll the view up
toggle-soft-wrapN SlastToggle soft wrapping
toggle-whitespaceN SlastToggle whitespace markers
toggle-zenN SlastToggle the centred, maximized writing view
toggle-fullscreenN SlastToggle the active pane across the whole editor area

File, buffer, and destination actions

ActionModesPositionDescription
saveN S I RlastWrite the active buffer
new-bufferN SlastOpen a new scratch buffer
goto-fileN SlastOpen the file or web link under the cursor
open-explorerN SlastOpen file explorer in the active buffer’s directory
toggle-directory-treeN SlastShow or hide the directory tree
focus-directory-treeN SlastReveal the active file in the directory tree
open-working-directory-explorerN SlastOpen file explorer in the working directory
git-conflictsN SlastOpen unresolved Git conflicts
open-file-pickerN SlastOpen the finder over the project’s files, buffers, and terminals
open-all-files-pickerN SlastOpen the finder over the project, including files Git ignores
open-path-file-pickerN SlastOpen the finder in a chosen path, including files Git ignores
open-buffer-pickerN SlastOpen the buffer picker
open-navigatorN S I RlastNavigate open buffers and terminals
previous-destinationN S I RlastReturn to the previous destination in this pane

Pane actions

ActionModesPositionDescription
split-verticalN SlastCreate a side-by-side split
split-horizontalN SlastCreate a stacked split
focus-window-leftN S I RlastFocus the pane to the left
focus-window-downN S I RlastFocus the pane below
focus-window-upN S I RlastFocus the pane above
focus-window-rightN S I RlastFocus the pane to the right
next-windowN S I RlastFocus the next pane
swap-windowN S I RlastSwap this pane’s content with the previously focused pane
close-windowN SlastClose the active pane
only-windowN SlastClose every pane except the active pane
equalize-windowsN SlastEqualize pane widths, then pane heights within each column

Terminal actions

ActionModesPositionDescription
open-terminalN SlastStart a terminal in this pane
open-terminal-listN SlastShow the running terminals
rename-terminalN SlastName the active terminal session
leave-terminalN SlastShow this pane’s buffer again
copy-terminal-outputN SlastOpen this terminal’s output as a buffer
send-to-terminalN SlastSend the selection to a terminal

Persistent session actions

ActionModesPositionDescription
previous-sessionN S I RlastReturn to the previously visited persistent session
session-1N SlastAttach to persistent session 1
session-2N SlastAttach to persistent session 2
session-3N SlastAttach to persistent session 3
session-4N SlastAttach to persistent session 4
session-5N SlastAttach to persistent session 5
session-6N SlastAttach to persistent session 6
session-7N SlastAttach to persistent session 7
session-8N SlastAttach to persistent session 8
session-9N SlastAttach to persistent session 9
next-running-sessionN S I RlastVisit the next running persistent session
previous-running-sessionN S I RlastVisit the previous running persistent session

Language server actions

ActionModesPositionDescription
goto-definitionN SlastGo to definition
goto-declarationN SlastGo to declaration
goto-type-definitionN SlastGo to type definition
goto-referencesN SlastGo to references
goto-implementationN SlastGo to implementation
show-documentationN SlastShow documentation
document-symbolsN SlastOpen document symbols
workspace-symbolsN SlastOpen workspace symbols
diagnosticsN SlastOpen diagnostics
trigger-completionN S I RlastAsk the language server for completions
rename-symbolN SlastRename symbol
code-actionN SlastApply a code action

Clipboard, register, and macro actions

ActionModesPositionDescription
clipboard-yankN SlastYank to the system clipboard
clipboard-paste-afterN SlastPaste from the system clipboard
clipboard-paste-beforeN SlastPaste before from the system clipboard
clipboard-pasteN S I RlastPaste an image or text from the clipboard
select-registerN SlastSelect a register
record-macroN SlastRecord a macro named by the next key
record-default-macroN SlastRecord the default macro, or stop recording
replay-macroN SlastReplay the macro named by the next key
replay-default-macroN SlastReplay the default macro
list-macrosN SlastList the recorded macros

Colon commands

These run in Normal and Select modes and are always last. Pass an argument with { command: name, argument: text }.

CommandUsageDescription
cdcd <path>Change the editor working directory
session-attachsession-attach <workspace>Attach to another workspace’s persistent session
session-listsession-listSession manager and native controls
session-stopsession-stop [workspace]Stop a clean persistent session
session-renamesession-rename <workspace> <name>Rename a persistent session
session-cleansession-cleanClean verified stopped session history
diff-diskdiff-diskCompare the active file buffer with a fresh disk observation
diff-remotediff-remoteCompare the active provider document with a fresh read-only remote snapshot
diff-thisdiff-thisCompare this buffer with the next one marked
diff-offdiff-offClose the comparison this buffer is part of
formatformatFormat the active buffer with its language server
grammargrammar [runyte]Report the active Runyte editing grammar
pipepipe <shell-command>Pipe each selection through a shell command
pipe-cancelpipe-cancelCancel the workspace shell pipe
pluginspluginsInspect configured plugins and their state
plugin-stopplugin-stop <configured-id>Stop a plugin or cancel its pending restart
plugin-restartplugin-restart <configured-id>Restart a configured plugin after cleanup
config-reloadconfig-reloadRe-read the loaded configuration file without restarting
service-healthservice-healthInspect optional editor service health
log-openlog-openOpen this process’s diagnostic log
notificationsnotificationsOpen the retained notification history
pathpathShow the active buffer’s absolute path
closecloseClose the active buffer without changing the pane layout
close!close!Close the active buffer and discard its unsaved text
git-comparegit-compareCompare with this branch or worktree
git-branchesgit-branchesOpen the local and remote branch list
git-loggit-logOpen the Git log, or refresh it from its first page
git-networkgit-networkOpen or refresh the cached commit network
git-network-headgit-network-headRestrict the commit network to HEAD
git-network-allgit-network-allShow all cached refs and HEAD
git-network-choose-refgit-network-choose-refChoose a captured exact ref
git-network-refgit-network-ref <full-ref>Restrict the commit network to an exact full ref
git-search-commitsgit-search-commitsFuzzy-search commits reachable from HEAD by message, object ID, author, or date
git-blamegit-blameShow attribution for the primary line using live buffer text
git-blame-filegit-blame-fileOpen full-file attribution using live buffer text
git-worktreesgit-worktreesOpen or refresh the repository worktree list
git-commitgit-commitWrite a message and commit what is staged
git-diffgit-diffShow the active file’s unstaged diff
git-diff-side-by-sidegit-diff-side-by-sideCompare the two complete versions of the active file
git-discardgit-discardThrow away a file’s uncommitted changes, after a confirmation
git-indexgit-indexReview everything staged for the next commit
git-cancelgit-cancelStop the active Git operation and reconcile uncertain mutations
git-statusgit-statusOpen the changed-file list
git-stashesgit-stashesOpen or refresh the bounded stash list
git-stash-trackedgit-stash-tracked <name>Confirm a tracked-worktree snapshot while keeping the index applied
git-stash-allgit-stash-all <name>Confirm a named stash of tracked worktree and index changes
git-stash-untrackedgit-stash-untracked <name>Confirm a named stash including untracked files
git-stash-applygit-stash-applyConfirm applying the selected stash without dropping it
git-stash-dropgit-stash-dropConfirm dropping the selected stash
git-stage-hunkgit-stage-hunkStage the exact hunk under the cursor
git-unstage-hunkgit-unstage-hunkUnstage the exact hunk under the cursor
git-stage-linesgit-stage-linesStage the supported saved source-line selection
git-stagegit-stageStage the active file
git-unstagegit-unstageUnstage the active file
git-refreshgit-refreshRefresh Git state or retry failed repository discovery
lsp-trustlsp-trustChoose LSP permission for this workspace
mcpmcp [identity]Review workspace agent permissions
lsp-restartlsp-restart [language]Restart stopped language servers
lsp-statuslsp-statusReport language server state
openopen <path>Open a file or directory in the active pane
detachdetachDetach the TUI from its persistent session
quitquitClose the active pane and its unique buffer, or quit from the last pane
quit!quit!Discard a unique buffer and close its pane, or force quit from the last pane
quit-allquit-allQuit if all buffers are saved and no terminal is running
quit-all!quit-all!Quit and discard unsaved buffers, but never terminate terminals
quit-herequit-hereQuit and hand the active directory to the shell wrapper
quit-here!quit-here!Discard changes, quit, and hand the active directory to the shell wrapper
reloadreloadReload the active view
resize-rightresize-right <+|-> <cells>Grow or shrink the active pane at its right edge
resize-leftresize-left <+|-> <cells>Grow or shrink the active pane at its left edge
resize-topresize-top <+|-> <cells>Grow or shrink the active pane at its top edge
resize-bottomresize-bottom <+|-> <cells>Grow or shrink the active pane at its bottom edge
write-quitwrite-quitWrite the active buffer, then close its pane or quit if it is the last pane
write-buffer-closewrite-buffer-closeWrite and close the active buffer without changing the pane layout