User Guide¶
Keyboard Shortcuts¶
General¶
| Key | Action |
|---|---|
Ctrl+P |
Command palette |
Ctrl+O |
Open file (supports file:42 to go to line) |
Ctrl+Shift+O |
Open file from project |
Ctrl+Shift+R |
Open recent file / project |
Ctrl+N |
New file |
Ctrl+S |
Save (save-as for unnamed files) |
Ctrl+Shift+S |
Save as |
Ctrl+W |
Close tab |
Ctrl+Q |
Quit |
Ctrl+= / Ctrl+- |
Increase / decrease font size |
Ctrl+0 |
Reset font size |
Ctrl+B |
Toggle sidebar |
Ctrl+M |
Toggle minimap |
Alt+Z |
Toggle line wrapping |
Ctrl+Shift+H |
Toggle whitespace rendering |
Ctrl+Shift+P |
Cycle theme |
F11 |
Toggle fullscreen |
Ctrl+`` / F5 |
Toggle terminal |
Ctrl+Shift+T |
New terminal |
Editing¶
| Key | Action |
|---|---|
Ctrl+D |
Select word / add next occurrence |
Ctrl+L |
Select line |
Ctrl+A |
Select all |
Ctrl+/ |
Toggle line comment (language-aware) |
Ctrl+Up / Ctrl+Down |
Move line up / down |
Ctrl+Shift+D |
Duplicate line |
Ctrl+Shift+K |
Delete line |
Ctrl+J |
Join lines |
Ctrl+Shift+Up/Down |
Add cursor above / below |
Ctrl+Shift+[ |
Fold code block |
Ctrl+Shift+] |
Unfold code block |
Ctrl+Shift+\ |
Unfold all |
Find & Replace¶
| Key | Action |
|---|---|
Ctrl+F |
Find in file |
Alt+F |
Replace in file |
F3 / Enter |
Next match |
Shift+F3 / Shift+Enter |
Previous match |
Alt+R |
Toggle regex (inside find bar) |
Alt+W |
Toggle whole word (inside find bar) |
Alt+I |
Toggle case-insensitive (inside find bar) |
Alt+S |
Toggle find-in-selection (inside find bar) |
Ctrl+Enter |
Replace current match and find next |
Ctrl+Shift+F |
Find in files (project search) |
Alt+Shift+F |
Replace in files (project replace) |
LSP¶
| Key | Action |
|---|---|
F12 |
Go to definition |
Ctrl+F12 |
Go to implementation |
Shift+F12 |
Find references |
Ctrl+Shift+F12 |
Go to type definition |
Ctrl+K |
Hover |
Bookmarks¶
| Key | Action |
|---|---|
Ctrl+F4 |
Toggle bookmark on current line |
F4 |
Jump to next bookmark |
Shift+F4 |
Jump to previous bookmark |
Bookmarked lines show an accent-colored marker in the gutter. Bookmarks wrap around and are per-document.
Navigation¶
| Key | Action |
|---|---|
Ctrl+G |
Go to line |
Ctrl+Tab / Ctrl+Shift+Tab |
Next / previous tab |
Ctrl+PageUp / Ctrl+PageDown |
Move tab left / right |
Ctrl+Shift+G |
Git status |
Command Palette¶
Press Ctrl+P to open the command palette. All commands are searchable. The palette filters out raw key-input commands and only shows meaningful actions. Git commands are prefixed with "Git" (e.g. Git Pull, Git Push, Git Commit, Git Stash).
Additional commands available from the palette:
Sort Lines,Upper Case,Lower CaseOpen User SettingsToggle Minimap,Toggle Line Wrapping,Toggle WhitespaceToggle Hidden Files-- show/hide dotfiles in the sidebarCheck For Updates-- query GitHub for a newer releaseGit Pull,Git Push,Git Commit,Git Stash,Git StatusGit Blame-- toggle per-line blame annotations (author + date)Git Log-- show the last 50 commits for the active fileClose All,Close All Others
Sidebar¶
File icons in the sidebar are color-coded by extension (e.g. Rust files in red, Python in blue, Go in cyan). Colors are loaded from data/assets/file_icons.json. Hidden files (dotfiles) are hidden by default; toggle visibility with Toggle Hidden Files from the command palette.
Sidebar Context Menu¶
Right-click a file or folder in the sidebar:
- Open -- open the file
- Copy Path -- copy absolute path to clipboard
- Copy Relative Path -- copy project-relative path
- Refresh -- rescan the project tree
- Rename / Delete -- file operations
- New File / New Folder -- create in the selected directory
LSP Support¶
Lite Anvil includes built-in configurations for the following language servers. Install the binary and it works automatically -- no configuration needed.
Recommended Language Servers¶
| Language | Server | Install |
|---|---|---|
| Rust | rust-analyzer |
rustup component add rust-analyzer |
| Python | pyright-langserver |
pip install pyright or npm install -g pyright |
| Go | gopls |
go install golang.org/x/tools/gopls@latest |
| JavaScript / TypeScript / TSX | typescript-language-server |
npm install -g typescript-language-server typescript |
| C / C++ | clangd |
Package manager (e.g. apt install clangd) |
| Java | jdtls |
Eclipse JDT.LS |
| Kotlin | kotlin-language-server |
GitHub releases |
| C# | OmniSharp |
dotnet tool install -g OmniSharp |
| F# | fsautocomplete |
dotnet tool install -g fsautocomplete |
| Scala | metals |
Metals |
| PHP | intelephense |
npm install -g intelephense |
| Ruby | ruby-lsp |
gem install ruby-lsp |
| Lua | lua-language-server |
GitHub releases |
| Bash | bash-language-server |
npm install -g bash-language-server |
| Zig | zls |
ZLS |
| Haskell | haskell-language-server |
ghcup install hls |
| Elixir | elixir-ls |
ElixirLS |
| Erlang | erlang_ls |
erlang_ls |
| OCaml | ocamllsp |
opam install ocaml-lsp-server |
| Gleam | gleam lsp |
Bundled with gleam CLI |
| Dart | dart language-server |
Bundled with Dart SDK |
| Swift | sourcekit-lsp |
Bundled with Swift toolchain |
| Julia | LanguageServer.jl |
julia -e 'using Pkg; Pkg.add("LanguageServer")' |
| Clojure | clojure-lsp |
GitHub releases |
| Crystal | crystalline |
Crystalline |
Custom LSP Configuration¶
Create lsp.json in your user config directory or project root to add servers or override builtins:
{
"my_server": {
"command": ["my-lsp", "--stdio"],
"filetypes": ["mylang"],
"rootPatterns": ["myproject.toml", ".git"]
}
}
Set "autostart": false to disable a builtin server.
Syntax Highlighting¶
51 built-in syntax grammars:
| Category | Languages |
|---|---|
| Systems | Assembly, C, C++, D, Rust, Zig |
| JVM | Java, Kotlin, Scala, Groovy, Clojure |
| Web | JavaScript, TypeScript, TSX, HTML, CSS, Vue, Svelte, PHP |
| .NET | C#, F# |
| Scripting | Python, Ruby, Lua, Bash, PowerShell, R, Lisp |
| Functional | Haskell, OCaml, Elixir, Erlang, Gleam, Julia, Crystal |
| Other | Go, Dart, Swift |
| Data/Config | JSON (via JS), TOML, YAML, INI, XML, CSV, Env, Fstab, SQL, PostgreSQL, Meson |
| Markup | Markdown, Dockerfile |
XML highlighting also covers .csproj, .fsproj, .vbproj, .vcxproj, .sln, .props, .targets, .nuspec, .pom, .svg, .plist, .xaml.
Groovy highlighting covers .gradle files. Kotlin highlighting covers .gradle.kts files (via .kts extension).
Toggle line comments (Ctrl+/) automatically picks the correct marker for the active language -- // for Rust/C/JS, # for Python/Bash/TOML, -- for Lua/SQL/Haskell, ; for Assembly/Lisp/INI, % for Erlang, and block-comment wrapping (<!-- --> for HTML/Markdown/XML/Vue, /* */ for CSS, (* *) for OCaml) for languages without a line-comment form.
Configuration¶
Lite Anvil is configured via a TOML file. Open it from the sidebar settings icon or via the command palette: Open User Settings.
Config location¶
| Platform | Path |
|---|---|
| Linux | ~/.config/lite-anvil/config.toml |
| macOS | ~/Library/Application Support/lite-anvil/config.toml |
| Windows | %APPDATA%\lite-anvil\config.toml |
Key options¶
theme = "dark_default" # dark_default, light_default, fall, summer, textadept
indent_size = 2
tab_type = "soft" # "soft" (spaces) or "hard" (tabs)
line_endings = "lf" # "lf" or "crlf"
line_limit = 80
line_height = 1.2
highlight_current_line = true
draw_whitespace = false
borderless = false
max_tabs = 8
blink_period = 0.8
disable_blink = false
mac_command_as_ctrl = true # macOS: fold Cmd into Ctrl (on by default on Mac)
format_on_paste = true # convert pasted indent to match document style
[lsp]
load_on_startup = true
semantic_highlighting = true
inline_diagnostics = true
format_on_save = true
[terminal]
placement = "bottom"
reuse_mode = "pane"
[ui]
padding_x = 14
padding_y = 7
caret_width = 2
scrollbar_size = 4
tab_width = 170
[fonts.ui]
path = "/path/to/your/font.ttf"
size = 15
[fonts.code]
path = "/path/to/your/mono.ttf"
size = 15
Custom keybindings can be added under [keybindings]:
Command line options¶
lite-anvil [file...] Open files
lite-anvil file.rs:42 Open file at line 42
lite-anvil -v Verbose mode (log LSP errors to stderr)
lite-anvil --verbose Same as -v
The :N line-number suffix also works in the file picker (Ctrl+O).
Themes¶
Cycle themes with Ctrl+Shift+P or the command palette. JSON theme files are in data/assets/themes/.
Nano Anvil¶
Nano Anvil is a minimal single-file editor included alongside Lite Anvil.
Running Nano Anvil¶
On Linux, Nano Anvil is also available as a desktop application (Nano Anvil in your application menu).
Differences from Lite Anvil¶
Nano Anvil is designed for lightweight, single-file editing:
- Single file at a time (no tabs, no project)
- No sidebar, terminal, LSP, git integration, bookmarks, or code folding
- Syntax highlighting for 50+ languages (shared with Lite Anvil)
- Find and replace within the current file
- Full undo/redo (capped at 100 entries)
- 2 built-in themes (dark + light)
Keyboard Shortcuts (Nano Anvil)¶
| Key | Action |
|---|---|
Ctrl+O |
Open file |
Ctrl+S |
Save (prompts for path if untitled) |
Ctrl+Shift+S |
Save As |
Ctrl+Q |
Quit |
Ctrl+F |
Find |
Alt+F |
Find and Replace |
Ctrl+Z |
Undo |
Ctrl+Y |
Redo |
Ctrl+A |
Select All |
Ctrl+C / Ctrl+X / Ctrl+V |
Copy / Cut / Paste |
Ctrl+P |
Command Palette |
Ctrl+= / Ctrl+- |
Zoom In / Out |