Editor & Neovim
A real Neovim inside Empryo's terminal UI with your config, plugins and language servers. The agent reads, edits and navigates code in the same editor.
Copy & share
On this page9 sections
Empryo's terminal UI can show a real Neovim next to the chat. It can use your own Neovim config, plugins and language servers. You and the agent work in the same editor: you watch its edits land, and it can see where your cursor is and what you've selected.
The editor panel is part of the terminal UI. It needs Neovim, either installed on your system or through the `neovim` addon (empryo addon install neovim). Without Neovim, the editor commands are hidden.
Open the editorLink to this section
| Key or command | What it does |
|---|---|
Ctrl+E | Show or hide the editor panel |
/editor | Editor menu: toggle, open a file, settings, split |
/editor open <file> | Open a file in the editor |
/editor settings | Choose which editor and language-server features the agent may use |
/editor split | Cycle the editor/chat width: 40, 50, 60 or 70% for the editor |
/vim-hints | Show common Vim key hints in the editor footer |
Choose a Neovim configLink to this section
Pick a config mode with /nvim-config. The command is listed when Neovim comes from the neovim addon.
| Mode | What you get |
|---|---|
default | Empryo's built-in config, which installs language servers for your project automatically |
user | Your own config from ~/.config/nvim |
none | A bare Neovim with no plugins and no language servers |
What the agent can do in the editorLink to this section
The agent uses the editor through a tool called editor. You don't call it yourself; this is what it can do.
ReadLink to this section
| Action | Parameters | What it does |
|---|---|---|
read | startLine?, endLine?, file? | Read the buffer, a line range, or another file |
cursor_context | none | Current file, cursor position and selection |
buffers | none | List open buffers |
terminal_output | count? | Read recent terminal output (default: last 100 lines) |
EditLink to this section
| Action | Parameters | What it does |
|---|---|---|
edit | startLine, endLine, replacement, file? | Replace lines in the buffer |
select | startLine, endLine | Select a range of lines |
yank | text?, register? | Put text in a register (default: system clipboard) |
highlight | startLine, endLine | Highlight a range of lines so you can see what it means |
Move aroundLink to this section
| Action | Parameters | What it does |
|---|---|---|
navigate | file?, line?, col?, search? | Open a file, jump to a line, or search |
goto_cursor | line, col? | Move the cursor |
Language-server featuresLink to this section
| Action | Parameters | What it does |
|---|---|---|
diagnostics | none | Errors and warnings in the current buffer |
symbols | none | Functions, classes and variables in the file |
hover | line, col | Type and documentation at a position |
references | line, col | Every use of the symbol at a position |
definition | line, col, jump? | Where the symbol is defined |
actions | line, col?, apply? | Available quick fixes and refactorings |
quickfix | none | Apply the available quick fixes in the buffer |
rename | line, col, newName | Rename a symbol across the project |
format | startLine?, endLine? | Format the buffer or a range |
Choose what the agent may useLink to this section
/editor settings lets you turn each feature on or off. All are on by default.
| Setting | What it controls |
|---|---|
| LSP Diagnostics | Errors and warnings |
| Document Symbols | Functions, classes, variables |
| Hover / Type Info | Type info at a position |
| Find References | Every use of a symbol |
| Go to Definition | Jump to where a symbol is defined |
| Code Actions | Quick fixes and refactorings |
| LSP Rename | Project-wide rename |
| LSP Status | Which language servers are running |
| LSP Format | Formatting |
| Editor Context | Share your open file, cursor and selection with the agent |
| Sync on Edit | Jump to files the agent edits (off: only refresh the current buffer) |
You can also decide when the agent may use the editor at all:
| Mode | Behavior |
|---|---|
Always | The agent can always use the editor tool (default) |
Never | The editor tool is turned off |
When editor open | Only while the editor panel is visible |
Language servers without the editorLink to this section
The agent's code navigation doesn't depend on the editor panel. When the editor is open, requests go through the language servers Neovim is already running. When it's closed, Empryo starts the servers itself. Both give the agent definitions, references, hover, diagnostics, rename, code actions, call and type hierarchy, and formatting.
See LSP servers to install or manage servers.