Everything about installing, driving, configuring and extending ctrlvim.
ctrlvim is a text editor built from scratch in Rust, modeled after Neovim's editing model. Its terminal UI, cvi, is built with Ratatui and adds a startup dashboard, a file explorer, a plugin manager, and a settings screen on top of a modal editing core.
This is the reference documentation for the project — how to install it, drive it, configure it, and extend it.
If you are installing ctrlvim for the first time, read Installation and then Getting Started.
If you already use Neovim and want to know what carries over: the vim.lsp runtime ctrlvim ships is vendored unmodified from Neovim itself, so an lsp.lua written for real Neovim, using vim.lsp.config(...) and vim.lsp.enable(...), works here without changes. See Language Servers for details.
If you want to build ctrlvim from source or understand how the codebase is organized, read Building from Source.
ctrlvim is under active development. Keybindings, config sections, and defaults can change between commits. The Keybindings page and the in-editor ? help are always generated from the live mapping table, so they cannot drift out of date with what the keys actually do — this documentation is written by hand and may lag behind a very recent change.
Requirements, the install script, the Makefile targets, where files land.
02Launching cvi, the dashboard, modal editing basics, the shell keymap.
03Every default mapping, the mapping layer, and how to change it.
04Every table in config.toml, with examples.
05The Lua API, declaring plugins, commands, keymaps, floating windows.
06lsp.lua, the vendored Neovim vim.lsp runtime, and how servers attach.
07The crate layout, cargo commands, and the Makefile.