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.rs

General & Navigation Keymaps

Core window splitting, buffer navigation, and code formatting shortcuts:

KeybindingAction / Description
<leader>fFormat current buffer (LSP auto-formatter)
<leader>kNavigate to next buffer tab
<leader>jNavigate to previous buffer tab
<leader>gFocus 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:

KeybindingModuleDescription
<leader>eNvimTreeToggle file explorer sidebar
<leader>oNvimTreeFocus file explorer tree
<leader>nNvimTreeLocate active file in explorer tree
<leader>ffTelescopeFuzzy find files by filename
<leader>fgTelescopeLive grep text search across workspace
<leader>fbTelescopeInteractive open buffer switcher
<leader>fhTelescopeSearch Neovim help documentation tags

LSP Intelligence & Code Diagnostics (Lspsaga + Trouble)

Full language server features including hover cards, code actions, references, and diagnostics:

KeybindingLSP Action Description
KHover documentation & symbol type information (Lspsaga)
F / <leader>caTrigger contextual code actions and quickfixes
gdGo to symbol definition / peek definition
grShow references finder across all project files
giJump to symbol interface implementation
<leader>rnRename symbol project-wide
[d / ]dJump to previous / next diagnostic error or warning
<leader>xxToggle Trouble workspace diagnostics panel

Integrated Terminals & LazyGit (ToggleTerm)

Manage background shell tasks and git repositories without leaving your buffer:

KeybindingTerminal / Git Action
<leader>tToggle horizontal split terminal
<C-&gt;Toggle floating centered terminal
<leader>ftToggle focus between terminal and editor buffer
<leader>lgOpen floating LazyGit interface

Interactive Debugging (DAP)

Integrated breakpoint debugging powered by nvim-dap and nvim-dap-ui:

KeybindingDebugger Operation
<F5> / <leader>dcStart / Continue debugging session
<leader>dbToggle breakpoint on current line
<leader>dBClear all active breakpoints
<F10> / <leader>dnStep over statement
<F11> / <leader>diStep into function call
<F12> / <leader>doStep out of function call
<leader>duToggle interactive DAP UI debugger windows

NitroVim Commands & Themes

Custom user commands available inside the command-line buffer:

CommandDescription
:NitroLearnInteractive visual dashboard for mastering Vim motions and NitroVim keymaps.
:ThemeSwitchInteractive popup menu to instantly preview and apply 20+ included themes.
:TransparentToggleToggles background transparency for seamless desktop compositor blur.
:FileExplorer {left|right}Opens file tree explorer positioned at designated side.
:CloseAllBuffersCloses all open buffers except the currently focused file.
:VTerm <n>Launches up to 4 synchronized vertical split terminals.
:MasonOpens Mason LSP, DAP, linter, and formatter package manager.
:LazyOpens 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