This is a lean, keyboard-driven Neovim setup for developers who care about performance and control. Faster than Visual Studio. Less bloated than Emacs. Sharper than your average IDE.
This config focuses on precision and simplicity without sacrificing power. Feature-rich without compromising performance and efficiency.
- Features Overview
- File Structure
- Keybindings
- Theme System
- Requirements
- Plugin Stack
- Installation
- License
- Fast Startup — Sub-100ms load time with lazy-loading
- Nano-style Keybinds — Familiar navigation for newcomers and power users
- Plugin Keybinds — Logical, low-friction shortcuts for every integrated tool
- Clipboard Integration — Seamless Wayland clipboard support (
wl-clipboard) - Built-in LSP — Out-of-the-box support for major languages
- Treesitter Syntax — Modern, granular syntax highlighting
- Autocompletion — With
nvim-cmpand snippet expansion - Integrated Terminal — One keypress away
- Git Integration — Visual diffs, gutter signs, and staging commands
- Fuzzy Finder — Fast, file-aware navigation with
telescope - Theme Switching — Runtime color scheme switching with
:SetTheme <name> - No Nerd Fonts Required — Clean visuals with standard fonts
~/.config/nvim
├── init.lua # Main config entry
├── lua/
│ ├── plugins/ # Plugin specs and setup
│ ├── colors/ # Theme modules
│ └── utils/ # Helpers (clipboard, theme switching, etc.)
| Keybind | Action |
|---|---|
| Ctrl + S / o | Save file (:w) |
| Ctrl + Q / x | Quit file (:q) |
| Ctrl + K | Cut current line |
| Ctrl + U | Paste |
| Ctrl + W | Search |
| Ctrl + Z | Undo |
| Alt + E | Redo |
| Ctrl + A | Move to beginning of line |
| Ctrl + E | Move to end of line |
| Leader + w | Save |
| Leader + q | Quit |
| Leader + x | Save and quit |
| Leader + c | Close buffer |
| Keybind | Action |
|---|---|
| Ctrl + H/L/J/K | Move between windows |
| Ctrl + Arrows | Resize window |
| Shift + H/L | Previous / next buffer |
| Leader + e | Toggle file tree |
| Leader + f | Find files |
| Leader + g | Live grep |
| Leader + b | List buffers |
| Leader + h | Help tags |
| Keybind | Action |
|---|---|
| gd | Go to definition |
| gi | Go to implementation |
| gr | Find references (Lspsaga) |
| K | Hover docs |
| Leader + rn | Rename (Lspsaga) |
| Leader + ca | Code action |
| [d / ]d | Previous / next diagnostic |
| Leader + dl | Show diagnostics in telescope |
| Keybind | Action |
|---|---|
| Leader + gs | Git status |
| Leader + gp | Git push |
| Leader + gl | Git pull |
| ]g / [g | Next / previous hunk |
| Leader + hp | Preview hunk |
| Leader + hs | Stage hunk |
| Leader + hr | Reset hunk |
| Keybind | Action |
|---|---|
| Leader + mp/ms | Start/Stop markdown preview |
| Leader + qo/qc | Open/Close quickfix |
| Leader + lo/lc | Open/Close location list |
| Leader + xx/xX | Toggle diagnostics/all/buffer |
| Leader + cs/cl | Show symbols/LSP items |
| Leader + xL/xQ | Location/Quickfix list |
| Leader + sr | Open Spectre |
| Leader + / | Toggle comment |
| Leader + t | Toggle terminal |
| Ctrl + T | Next theme |
Themes are modular Lua files in lua/colors/ and are switchable at runtime:
:SetTheme oxocarbonEach theme includes consistent styling for:
- Statusline / Tabline
nvim-treesidebar- GitSigns
- Popup menus, diagnostics, and UI elements
Theme cycling is handled with <C-t>, and manual selection uses the :SetTheme command. Because of how jank neovim is at times when you switch to a theme you should restart neovim
- Neovim 0.9+
- wl-clipboard/XClip for clipboard support
- Recommended:
ripgrep,fd,batnode,npm,python3,pip(for LSPs and formatters)
No Nerd Font dependency. No special terminal required.
lazy.nvim— plugin managerplenary.nvim— utility functions
lualine.nvim— statuslinebufferline.nvim— tabline buffer navnvim-tree.lua— file explorernvim-web-devicons— optional icons
telescope.nvim— fuzzy findingnvim-spectre— global search & replace
nvim-autopairs— auto-close bracketsComment.nvim— toggle commentsnvim-surround— surround editingvim-table-mode— Markdown table editor
gitsigns.nvim— gutter signsvim-fugitive— Git integrationgit-conflict.nvim— conflict resolution
nvim-lspconfig— core LSP clientmason.nvim,mason-lspconfig.nvim— LSP installer/managernvim-cmp— autocompletion enginecmp-nvim-lsp,cmp-buffer,cmp-path,cmp_luasnip— completion sourcesluasnip— snippet enginelspsaga.nvim— LSP UI enhancementsnone-ls.nvim— formatting and linting
nvim-dap— core DAP supportnvim-dap-ui— debugger UInvim-dap-virtual-text— inline debug infonvim-nio— async helpers
markdown-preview.nvim— live Markdown preview
toggleterm.nvim— terminal integration
Clone the repo into your Neovim config directory:
git https://github.com/empr0r/neovim-ide-config ~/.config/nvim
nvimPlugins will install on first launch.
MIT. Fork, extend, break it, whatever.



















