Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Beyond vim — what nxvim adds

nxvim speaks vim at the keyboard: keystrokes, modes, ex-commands, and options track vim/neovim’s observable editing behavior. On top of that baseline it grows a handful of features vim and neovim don’t have natively — modern editing and UI surfaces that fit the modal grammar rather than fighting it.

This page is the index. Each feature below has a full guide linked from its name; the one-liner is the elevator pitch.

Editing

FeatureWhat it is
Multi-cursor modeHelix/Sublime-style multi-editing: drop N cursors in a dedicated placement mode, then have motions, operators, visual mode, and insert all act on every cursor at once.
Smooth scrollingViewport scrolls slide instead of teleporting (neoscroll.nvim built in), interpolated client-side so it stays smooth even over a remote link. On by default.
Image previewsOpen an image file and the picture renders inline — ratatui-image in the terminal, a GPU texture in the GUI, an <img> in the browser.

UI surfaces

FeatureWhat it is
UI primitivesA layered toolkit for plugin UIs — a Vue-shaped reactive component model (nx.component), plugin-owned content surfaces (nx.view), ready-made async widgets (nx.ui input/confirm/select), and floating windows — all server-owned and sharing one geometry vocabulary.
Permanent docksVSCode-style editable edge panels (file tree, terminals, problem lists) that are global across tabs, toggle independently of windows, and carry their own tabs and options.
Fuzzy pickernx.picker: a server-owned fuzzy finder with streaming Lua sources, live (dynamic) sources, a file/location preview pane, and fully rebindable keys.
Quickfix & named-list dock tabsThe quickfix list and named lists open as bottom-dock tabs by default ('qfdock') — several searches side by side, entries jumping into the main area — with the nx.qf.* sinks and the picker’s <C-q> / <Tab> multi-select. Location lists keep vim’s split behavior.

Platform

FeatureWhat it is
Native nx.* plugin APInxvim’s own Lua API where the server owns every UI surface and plugins provide data and behavior.
WorkspacesThe VSCode “open a folder” model: --workspace <dir> opens a directory as a persistent project session, restoring its layout/tabs/buffers and carrying per-workspace option overrides (nx.wso).
Browser editorThe full editor — core, the Lua VM, and the server tick — compiled to WebAssembly, running entirely client-side with no server.
Edit-host split (remote editing)Edit on a remote machine with zero typing lag: the editor and Lua run locally while an nxvim --daemon serves the filesystem, processes, and watching over ssh or QUIC.
Lua plugin testingnx.test (describe/it/expect + async) plus a nxvim --test-plugin runner, so pure-Lua plugins test themselves.