My personal Neovim configuration using lazy.nvim as the plugin manager. This setup provides a modern IDE-like experience with carefully selected plugins for development.
- 🚀 Fast startup powered by lazy.nvim
- 🎨 Beautiful OneDark theme
- 📁 File explorer with nvim-tree
- 🔍 Powerful fuzzy finding with Telescope
- 🌳 Syntax highlighting with Treesitter
- 💡 LSP support with autocompletion
- 🤖 GitHub Copilot integration
- 🔥 Git integration with gitsigns
- 📑 Buffer management with bufferline
- 🔧 Terminal integration with toggleterm
- lazy.nvim - Modern plugin manager
- onedark - Theme and colorscheme
- lualine - Statusline
- nvim-tree - File explorer
- bufferline - Buffer/Tab management
- indent-blankline - Indent guides
- nvim-ufo - Ultra fold with modern UI
- nvim-treesitter - Syntax highlighting
- nvim-lspconfig - LSP configuration
- nvim-cmp - Completion engine
- copilot.lua - GitHub Copilot integration
- Comment.nvim - Code commenting
- nvim-autopairs - Auto pair brackets
- gitsigns.nvim - Git decorations
- telescope.nvim - Fuzzy finder
- toggleterm - Terminal integration
.
├── init.lua
├── lua
│ ├── core
│ │ ├── options.lua # Neovim options
│ │ └── keymaps.lua # Key mappings
│ └── plugins
│ ├── lazy-nvim.lua # Plugin manager setup
│ ├── onedark.lua # Theme configuration
│ ├── lualine.lua # Status line
│ ├── nvim-tree.lua # File explorer
│ └── ... # Other plugin configs
- Neovim >= 0.8.0
- Git
- A Nerd Font for icons
- (Optional) ripgrep for Telescope file search
- (Optional) A C compiler for Treesitter
- Backup your existing Neovim configuration:
mv ~/.config/nvim ~/.config/nvim.bak
- Clone this repository:
git clone https://github.com/YOUR_USERNAME/nvim.git ~/.config/nvim
- Start Neovim:
nvim
Lazy.nvim will automatically install all plugins on first launch.
Note: Leader key is set to
<Space>
<Leader>sv
- Split window vertically<Leader>sh
- Split window horizontally<Leader>nh
- Clear search highlighting
<C-L>
- Next buffer<C-H>
- Previous buffer
<Leader>e
- Toggle NvimTree file explorer
jk
- Exit insert mode (alternative to<ESC>
)
J
- Move selected lines downK
- Move selected lines up
<F5>
- Compile and run C++ (output redirected from input.txt to output.txt)<Leader>tp
- Load C++ template from ~/.config/nvim/template.cpp
To add your own customizations, you can:
- Modify existing plugin configurations in
lua/plugins/
- Add new plugin configurations following the lazy.nvim spec
- Adjust core settings in
lua/core/options.lua
- Customize keymaps in
lua/core/keymaps.lua
Feel free to submit issues and enhancement requests!