NitroVim Overview & Quickstart
NitroVim is the official modal code editor for Nitro OS. Engineered on top of Neovim with Lua, it delivers sub-millisecond startup, Treesitter syntax parsing, Mason LSP tooling, AI assistance with GitHub Copilot, and native Git workflow integration.
Leader Key
The global leader key is configured to Space. All custom commands and menu toggles chain from Space.
Interactive Learning
Launch :NitroLearn inside the editor anytime for interactive motion drills and keymap guides.
# Launch NitroVim
nvim
# Open a specific file or folder
nvim ./src/main.rsGeneral & Navigation Keymaps
Core window splitting, buffer navigation, and code formatting shortcuts:
| Keybinding | Action / Description |
|---|---|
| <leader>f | Format current buffer (LSP auto-formatter) |
| <leader>k | Navigate to next buffer tab |
| <leader>j | Navigate to previous buffer tab |
| <leader>g | Focus active editor buffer (from NvimTree/Terminal) |
| <C-h> / <C-l> | Move focus to left / right split window |
| <C-j> / <C-k> | Move focus to window below / above |
Fuzzy Finding & File Tree (Telescope + NvimTree)
Fast file discovery, text grepping, and buffer management:
| Keybinding | Module | Description |
|---|---|---|
| <leader>e | NvimTree | Toggle file explorer sidebar |
| <leader>o | NvimTree | Focus file explorer tree |
| <leader>n | NvimTree | Locate active file in explorer tree |
| <leader>ff | Telescope | Fuzzy find files by filename |
| <leader>fg | Telescope | Live grep text search across workspace |
| <leader>fb | Telescope | Interactive open buffer switcher |
| <leader>fh | Telescope | Search Neovim help documentation tags |
LSP Intelligence & Code Diagnostics (Lspsaga + Trouble)
Full language server features including hover cards, code actions, references, and diagnostics:
| Keybinding | LSP Action Description |
|---|---|
| K | Hover documentation & symbol type information (Lspsaga) |
| F / <leader>ca | Trigger contextual code actions and quickfixes |
| gd | Go to symbol definition / peek definition |
| gr | Show references finder across all project files |
| gi | Jump to symbol interface implementation |
| <leader>rn | Rename symbol project-wide |
| [d / ]d | Jump to previous / next diagnostic error or warning |
| <leader>xx | Toggle Trouble workspace diagnostics panel |
Integrated Terminals & LazyGit (ToggleTerm)
Manage background shell tasks and git repositories without leaving your buffer:
| Keybinding | Terminal / Git Action |
|---|---|
| <leader>t | Toggle horizontal split terminal |
| <C-> | Toggle floating centered terminal |
| <leader>ft | Toggle focus between terminal and editor buffer |
| <leader>lg | Open floating LazyGit interface |
Interactive Debugging (DAP)
Integrated breakpoint debugging powered by nvim-dap and nvim-dap-ui:
| Keybinding | Debugger Operation |
|---|---|
| <F5> / <leader>dc | Start / Continue debugging session |
| <leader>db | Toggle breakpoint on current line |
| <leader>dB | Clear all active breakpoints |
| <F10> / <leader>dn | Step over statement |
| <F11> / <leader>di | Step into function call |
| <F12> / <leader>do | Step out of function call |
| <leader>du | Toggle interactive DAP UI debugger windows |
NitroVim Commands & Themes
Custom user commands available inside the command-line buffer:
| Command | Description |
|---|---|
| :NitroLearn | Interactive visual dashboard for mastering Vim motions and NitroVim keymaps. |
| :ThemeSwitch | Interactive popup menu to instantly preview and apply 20+ included themes. |
| :TransparentToggle | Toggles background transparency for seamless desktop compositor blur. |
| :FileExplorer {left|right} | Opens file tree explorer positioned at designated side. |
| :CloseAllBuffers | Closes all open buffers except the currently focused file. |
| :VTerm <n> | Launches up to 4 synchronized vertical split terminals. |
| :Mason | Opens Mason LSP, DAP, linter, and formatter package manager. |
| :Lazy | Opens Lazy.nvim plugin manager dashboard for updates and health checks. |
Customization & Adding Lua Plugins
NitroVim configurations are located in ~/.config/nvim/. You can customize options, keymaps, and install community plugins using the declarative Lua structure:
Adding a Plugin in lua/nitro/plugins/plugins.lua
return {
{
"folke/which-key.nvim",
event = "VeryLazy",
opts = {
},
},
}Enabling New LSP Servers in lua/nitro/lsp/lsp.lua
local servers = { "rust_analyzer", "gopls", "pyright", "ts_ls", "clangd", "lua_ls" }
for _, server in ipairs(servers) do
lspconfig[server].setup({
capabilities = capabilities,
on_attach = on_attach,
})
end