A text editor built from scratch in Rust, modeled after Neovim's editing model — with the conveniences a plugin ecosystem gives Neovim built in, instead of bolted on.
curl -fsSL https://ctrluserknown.github.io/ctrlvim/install.sh | sh
Harpoon-style file pinning, Telescope-style pickers, and the rest of what a Lua plugin ecosystem gives Neovim are native here instead — so there's no plugin manager, no version drift between updates, and no startup cost from loading a dozen scripts.
Normal, Insert, Visual and Command-line modes, with real motions, operators and text objects — 2d3w deletes six words, the way Vim’s does.
config.toml declares options, per-mode keymaps, autocommands and plugins. No config script to write.
<C-x>, <A-x>, <C-S-x>, arrows, F-keys and <S-Tab> are all bindable, in Normal, Insert and Visual mode.
Every mapping carries a desc. Hold a chord and a which-key popup lists what can follow it — ? shows the whole table.
vim.api, vim.fn, vim.keymap, vim.treesitter and friends via mlua — the API surface real Neovim plugins already run against.
Written from scratch rather than translated onto a general-purpose engine: backreferences, lookaround, \zs/\ze, all four magic levels.
Syntax-aware parsing and code navigation, driving live syntax highlighting in the editor.
<leader>S opens a live panel: every match grouped by file, a before/after diff, y / Y to accept one or all.
Options, per-mode keymaps, autocommands, user commands and plugins all live in one config.toml — no config script to write. Anything that needs real logic lives in a Lua plugin the config refers to by name.
config.toml[ui]
theme = "Tokyo Night"
[options]
number = true
ignorecase = true
[[keymap]]
lhs = "<leader>f"
rhs = ":Files<CR>"
desc = "fuzzy file browser" # shown by `?`
There are no prebuilt binaries yet — every install path builds from source, and the installer does the rest.