A modern Neovim setup using lazy.nvim as the plugin manager.
Includes essential plugins, optimized keymaps, and ready-to-use configurations for JavaScript, TypeScript, C++, and general development.
- Plugin management via lazy.nvim
- Neo-tree file explorer
- Bufferline for buffer/tab navigation
- Color themes with easy switching
- Language-specific plugins for JS/TS and C++
- Built-in terminal support
- Clipboard integration (copy, paste, delete)
- Custom keymaps for productivity
- Neovim β₯ 0.9
- Git
- Node.js (optional, for JS/TS LSP)
- Nerd Fonts (for icons in Neo-tree and Bufferline)
-
Backup your existing Neovim configuration (optional):
mv ~/.config/nvim ~/.config/nvim_backup -
Clone this repository:
git clone https://github.com/your-username/nvim-config.git ~/.config/nvim -
Launch Neovim:
nvim
On first launch, lazy.nvim will automatically install all plugins.
~/.config/nvim
βββ init.lua # Entry point
βββ lua
β βββ core
β β βββ keymaps.lua # Keybinding configuration
β β βββ options.lua # Neovim options
β βββ plugins
β βββ common.lua # Common plugins
β βββ neotree.lua # Neo-tree configuration
β βββ colortheme.lua # Theme configuration
β βββ javascript.lua # JS/TS plugins
β βββ bufferline.lua # Bufferline configuration
β βββ cpp.lua # C++ plugins
Leader key: Space (<Space>)
| Mode | Keys | Action |
|---|---|---|
| n/v | <leader>c |
Copy selection or line to clipboard |
| n | <leader>p |
Paste from system clipboard |
| n/v | <leader>x |
Cut/delete to clipboard |
| n | <leader>e |
Toggle Neo-tree file explorer |
| n | <leader>z |
Close current buffer |
| n | <leader>t |
Open terminal split |
| t | <Esc> |
Exit terminal mode |
| Mode | Keys | Action |
|---|---|---|
| n | <Tab> |
Next buffer |
| n | <S-Tab> |
Previous buffer |
| Mode | Keys | Action |
|---|---|---|
| n | <C-h> |
Move to left split |
| n | <C-j> |
Move to split below |
| n | <C-k> |
Move to split above |
| n | <C-l> |
Move to right split |
| t | <C-h> |
Move to left split (terminal) |
| t | <C-j> |
Move down (terminal) |
| t | <C-k> |
Move up (terminal) |
| t | <C-l> |
Move right (terminal) |
| Plugin | Description |
|---|---|
| lazy.nvim | Plugin manager |
| neo-tree.nvim | File explorer |
| bufferline.nvim | Tab and buffer management |
| nvim-treesitter | Syntax highlighting |
| LSP Config | Language Server Protocol support |
| Color Themes | Beautiful themes for Neovim |
| JavaScript/TypeScript Plugins | Configured in javascript.lua |
| C++ Plugins | Configured in cpp.lua |
- Change leader or keymaps in
lua/core/keymaps.lua - Modify editor options in
lua/core/options.lua - Add/remove plugins in
lua/plugins/and sync using:Lazy sync
Start Neovim:
nvim
To manually update or install plugins:
:Lazy sync
- Open issues or PRs on GitHub
- For questions or feedback, use GitHub Discussions