- 🚀 Fast & Lightweight: Optimized for speed with lazy-loading plugins via
lazy.nvim. - 💡 Smart Completion: Advanced code completion with
nvim-cmp, powered by multiple sources. - 💻 Integrated Tooling: Built-in LSP, linting, formatting, and debugging support.
- 🎨 Beautiful UI: A clean and modern aesthetic with a custom color scheme, file icons, and status line.
- 🧩 Rich Plugin Ecosystem: A curated set of plugins for everything from Git integration to project management.
- ⌨️ Intuitive Keymappings: Sensible and easy-to-remember shortcuts powered by
which-key.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Before you begin, ensure you have the following installed:
- Neovim v0.8.0+
- Git
- A Nerd Font (for icons)
-
Clone the repository:
git clone https://github.com/RAJ8664/nvim-config.git
-
Run the installation script:
cd nvim-config chmod +x install.sh ./install.sh -
Start Neovim:
Open Neovim and the plugins will be installed automatically.
nvim
This configuration is built around a set of powerful plugins:
| Plugin | Description |
|---|---|
lazy.nvim |
The plugin manager that powers this setup. |
Kanagawa.nvim |
The primary color scheme. |
lualine.nvim |
A blazing fast and beautiful status line. |
NeoTree.lua |
A fast and feature-rich file explorer. |
bufferline.nvim |
A sleek and functional buffer line. |
which-key.nvim |
A popup that displays keybindings. |
telescope.nvim |
A highly extendable fuzzy finder. |
nvim-treesitter |
For advanced syntax highlighting and code parsing. |
dashboard-nvim |
A fancy start screen for Neovim. |
| Plugin | Description |
|---|---|
nvim-lspconfig |
The core LSP configuration plugin. |
mason.nvim |
To manage and install LSPs, linters, and formatters. |
blink-cmp |
The completion engine. |
nvim-lint |
For asynchronous linting. |
gitsigns.nvim |
Git decorations and hunks in the sign column. |
nvim-dap |
A Debug Adapter Protocol implementation. |
| Plugin | Description |
|---|---|
auto-pairs |
Automatically closes pairs of brackets, quotes, etc. |
comment.nvim |
For easy commenting and uncommenting of code. |
indent-blankline.nvim |
Adds indentation guides. |
flash.nvim |
For quick navigation within the viewport. |
This configuration has built-in support for a variety of languages through nvim-lspconfig and mason.nvim. The following LSPs are configured by default:
lua_ls(Lua)clangd(C/C++)ts_ls(TypeScript/JavaScript)jdtls(Java)phpactor(PHP)tailwindcss(Tailwind CSS)htmlsqls
You can easily add more LSPs by modifying the lsp_config.lua file.
This configuration is designed to be easily customizable. Here are some of the key files you might want to edit:
lua/core/options.lua: General Neovim settings.lua/core/keymaps.lua: Global keymappings.lua/plugins/: Plugin configurations. Add or remove files here to manage your plugins.lua/plugins/lsp_config.lua: LSP and language server settings.
| Mode | Keybinding | Description |
|---|---|---|
| n | <C-s> |
Save file |
| i | <C-z> |
Undo |
| n | gl |
View diagnostics for the current line |
| n | <C-a> |
Select all |
| n | <leader>sn |
Save file without auto formatting |
| n | <Esc> |
Clear highlights |
| n | <leader>q |
Open diagnostic [Q]uickfix list |
| t | <Esc><Esc> |
Exit terminal mode |
| n | <C-h> |
Move focus to the left window |
| n | <C-l> |
Move focus to the right window |
| n | <C-j> |
Move focus to the lower window |
| n | <C-k> |
Move focus to the upper window |
| n | <leader>jc |
Replace test case to input.txt |
| n | <leader>jr |
Run java code |
| n | <leader>jf |
Run cpp code |
| n, v | <leader>f |
Format file or range |
| n | <Tab> |
Next buffer |
| n | <S-Tab> |
Previous buffer |
| n | <leader>Dc |
Debug: Start/Continue |
| n | <leader>Dsi |
Debug: Step Into |
| n | <leader>DsO |
Debug: Step Over |
| n | <leader>Dso |
Debug: Step Out |
| n | <leader>Db |
Debug: Toggle Breakpoint |
| n | <leader>DB |
Debug: Set Conditional Breakpoint |
| n | <leader>Dt |
Debug: Toggle UI |
| n | <leader>Dl |
Debug: Run Last Configuration |
| n | <F5> |
Debug: Start/Continue |
| n | <F1> |
Debug: Step Into |
| n | <F2> |
Debug: Step Over |
| n | <F3> |
Debug: Step Out |
| n | <leader>b |
Debug: Toggle Breakpoint |
| n | <leader>B |
Debug: Set Breakpoint |
| n | <F7> |
Debug: See last session result. |
| n | <Leader>; |
Pick symbols in winbar |
| n | [; |
Go to start of current context |
| n | ]; |
Select next context |
| n, x, o | s |
Flash |
| n, x, o | S |
Flash Treesitter |
| o | r |
Remote Flash |
| o, x | R |
Treesitter Search |
| c | <c-s> |
Toggle Flash Search |
| v | <leader>hs |
git [s]tage hunk |
| v | <leader>hr |
git [r]eset hunk |
| n | <leader>hs |
git [s]tage hunk |
| n | <leader>hr |
git [r]eset hunk |
| n | <leader>hS |
git [S]tage buffer |
| n | <leader>hu |
git [u]ndo stage hunk |
| n | <leader>hR |
git [R]eset buffer |
| n | <leader>hp |
git [p]review hunk |
| n | <leader>hb |
git [b]lame line |
| n | <leader>hd |
git [d]iff against index |
| n | <leader>hD |
git [D]iff against last commit |
| n | <leader>gt |
[T]oggle git show [b]lame line |
| n | <leader>tD |
[T]oggle git show [D]eleted |
| n | <C-b> |
NeoTree reveal |
| n, v | <leader>aa |
Sidekick Toggle CLI |
| n | <leader>as |
Sidekick Select CLI |
| v | <leader>as |
Sidekick Send Visual Selection |
| n, v | <leader>ap |
Sidekick Select Prompt |
| n, x, i, t | <c-.> |
Sidekick Switch Focus |
| n, v | <leader>ac |
Sidekick Claude Toggle |
| n | <leader>sh |
[S]earch [H]elp |
| n | <leader>sk |
[S]earch [K]eymaps |
| n | <leader>sf |
[S]earch [F]iles |
| n | <leader>ss |
[S]earch [S]elect Telescope |
| n | <leader>sw |
[S]earch current [W]ord |
| n | <leader>sg |
[S]earch by [G]rep |
| n | <leader>sd |
[S]earch [D]iagnostics |
| n | <leader>sr |
[S]earch [R]esume |
| n | <leader>s. |
[S]earch Recent Files ("." for repeat) |
| n | <leader><leader> |
[ ] Find existing buffers |
| n | <leader>/ |
[/] Fuzzily search in current buffer |
| n | <leader>s/ |
[S]earch [/] in Open Files |
| n | <leader>sn |
[S]earch [N]eovim files |
This configuration was inspired by the many amazing Neovim users and plugin authors in the community. A special thanks to the creators of the plugins and tools that make this setup possible.
Made with ❤️ and Lua







