Skip to content

Keybindings

ssobol77 edited this page May 12, 2026 · 2 revisions

Keybindings

🌍 English · Polski · Français · Deutsch · 中文

Complete keyboard shortcut reference for ECLI. All bindings can be customized in config.toml under the [keybindings] section.

File operations

Shortcut Action
Ctrl+N New file
Ctrl+O Open file (file picker opens)
Ctrl+S Save current file
Ctrl+Shift+S Save as…
Ctrl+W Close current buffer
Ctrl+Q Quit ECLI (prompts if unsaved changes)

Cursor movement

Shortcut Action
Arrow keys Move cursor one char/line
Ctrl+Left / Ctrl+Right Move by word
Home / End Start / end of line
Ctrl+Home / Ctrl+End Start / end of file
Page Up / Page Down Scroll one page
Ctrl+G Go to line number (when no panel open)

Selection

Shortcut Action
Shift+Arrow Extend selection
Ctrl+Shift+Arrow Extend selection by word
Ctrl+A (no panel) Select all
Esc Clear selection

⚠️ Note: Ctrl+A toggles the AI panel by default. Select-all uses Ctrl+Shift+A to avoid conflict. Configurable.

Editing

Shortcut Action
Ctrl+C Copy selection
Ctrl+X Cut selection
Ctrl+V Paste
Ctrl+Z Undo
Ctrl+Y / Ctrl+Shift+Z Redo
Ctrl+D Duplicate current line
Ctrl+K Cut current line to clipboard
Ctrl+/ Toggle comment (uses CodeCommenter)
Tab / Shift+Tab Indent / dedent line or selection

Search and replace

Shortcut Action
Ctrl+F Find in file
Ctrl+H Find and replace
F3 / Shift+F3 Next / previous match
Esc Close search

Panels

ECLI has several side panels. They're opened by their shortcut and closed with Esc.

Shortcut Panel
Ctrl+A AI Assistant — ask for code, explain, refactor
Ctrl+G Git — status, stage, commit, push, pull, diff
Ctrl+B File Manager — multi-pane file browser
Ctrl+P Command Palette — fuzzy command finder
Ctrl+L LSP Diagnostics — errors and warnings from language server
F1 Help — keybinding reference and quick guide

Only one panel is visible at a time. Opening a new one closes the current.

LSP (Language Server) actions

When a language server is active for the current file:

Shortcut Action
F12 Go to definition
Shift+F12 Find references
Ctrl+Space Trigger autocomplete
Ctrl+. Show code actions / quick fixes
F2 Rename symbol
Ctrl+Shift+F Format document

Git panel actions

When the Git panel is open (Ctrl+G):

Shortcut Action
Enter View diff for current file
s Stage selected file
u Unstage selected file
c Commit (opens message prompt)
p Push
f Fetch
Tab Switch between status / log / branches view

AI panel actions

When the AI panel is open (Ctrl+A):

Shortcut Action
Enter (in input) Submit prompt
Shift+Enter New line in prompt
Ctrl+Enter Insert AI response at cursor in editor
Tab Cycle providers (if multiple configured)

Customization

Override any shortcut in config.toml:

[keybindings]
# Disable AI panel default, swap to Ctrl+I
"ctrl+a" = "select_all"
"ctrl+i" = "panel:ai"

# Add a custom binding for Git status
"alt+g" = "panel:git"

# Disable a binding
"ctrl+w" = ""

Available action names:

  • File: file:new, file:open, file:save, file:save_as, file:close, file:quit
  • Edit: edit:copy, edit:cut, edit:paste, edit:undo, edit:redo, edit:duplicate_line, edit:cut_line, edit:toggle_comment
  • Search: search:find, search:replace, search:next, search:prev
  • Panels: panel:ai, panel:git, panel:files, panel:palette, panel:lsp, panel:help
  • LSP: lsp:goto_definition, lsp:find_references, lsp:autocomplete, lsp:code_actions, lsp:rename, lsp:format
  • Selection: selection:all, selection:clear
  • Cursor: cursor:line_start, cursor:line_end, cursor:file_start, cursor:file_end, cursor:goto_line

Restart ECLI after editing [keybindings].

Default config snippet

If you want to see all default bindings explicitly:

ecli --print-default-keybindings

This prints the [keybindings] section that ECLI uses internally.

Clone this wiki locally