A modern, feature-rich Neovim configuration focused on developer productivity and ease of use.
- 🔧 LSP Integration - Full Language Server Protocol support with auto-installation
- 🤖 AI-Powered Coding - GitHub Copilot integration for intelligent code completion
- 🎨 Beautiful UI - Modern interface with customizable themes and statusline
- 📁 Smart File Navigation - Fuzzy finding and project navigation tools
- 🐛 Advanced Debugging - Built-in DAP support with visual debugging features
- 🔍 Code Quality Tools - Integrated linting and formatting
- 📝 Rich Text Editing - Treesitter syntax highlighting and text manipulation tools
- Neovim >= 0.9.0
- Git (for plugin management)
- Node.js (for some LSP servers and Copilot)
- A Nerd Font (recommended: JetBrains Mono Nerd Font)
# Backup existing config (optional)
mv ~/.config/nvim ~/.config/nvim.backup
# Clone this configuration
git clone https://github.com/FelixSauer/nvim-config.git ~/.config/nvim
# Start Neovim - plugins will auto-install
nvim-
Install Neovim (if not already installed):
# macOS brew install neovim # Ubuntu/Debian sudo apt install neovim # Arch Linux sudo pacman -S neovim
-
Install a Nerd Font:
# macOS with Homebrew brew tap homebrew/cask-fonts brew install font-jetbrains-mono-nerd-font -
Clone and setup:
git clone https://github.com/FelixSauer/nvim-config.git ~/.config/nvim nvim
~/.config/nvim/
├── init.lua # Main configuration entry point
├── lua/
│ ├── core/ # Core Neovim settings
│ │ ├── keymaps.lua # Key mappings
│ │ └── options.lua # Neovim options
│ └── plugins/ # Plugin configurations
└── ftplugin/ # Filetype-specific settings
This configuration uses lazy.nvim for plugin management, which provides:
- ⚡ Fast startup times with lazy loading
- 🎯 Automatic plugin installation
- 🔄 Easy plugin updates
- 📊 Plugin performance monitoring
| Plugin | Purpose | Key Features |
|---|---|---|
| nvim-lspconfig | LSP client configuration | Auto-completion, diagnostics, go-to-definition |
| mason.nvim | LSP server management | Automatic LSP server installation |
| nvim-cmp | Completion engine | Intelligent autocompletion with multiple sources |
| nvim-treesitter | Syntax highlighting | Advanced parsing and code understanding |
| Plugin | Purpose | Key Features |
|---|---|---|
| copilot.vim | AI code completion | GitHub Copilot integration |
| CopilotChat.nvim | AI chat interface | Interactive AI assistance for coding |
| Plugin | Purpose | Key Features |
|---|---|---|
| telescope.nvim | Fuzzy finder | File search, grep, symbols, and more |
| harpoon | Quick navigation | Mark and jump between important files |
| neo-tree.nvim | File explorer | Modern file tree with git integration |
| Plugin | Purpose | Key Features |
|---|---|---|
| lualine.nvim | Statusline | Customizable and informative status bar |
| onedarkpro.nvim | Color scheme | Beautiful dark theme with variants |
| indent-blankline.nvim | Indentation guides | Visual indentation helpers |
| noice.nvim | Enhanced UI | Better notifications and command line |
| snacks.nvim | Dashboard | Stylish startup screen |
| Plugin | Purpose | Key Features |
|---|---|---|
| conform.nvim | Code formatting | Automatic code formatting on save |
| nvim-lint | Linting | Real-time code linting and error detection |
| nvim-dap | Debugging | Debug Adapter Protocol support |
| nvim-dap-ui | Debug interface | Visual debugging with breakpoints |
| Plugin | Purpose | Key Features |
|---|---|---|
| lazygit.nvim | Git interface | Interactive git operations |
| git-blame.nvim | Git annotations | Line-by-line git blame information |
| Plugin | Purpose | Key Features |
|---|---|---|
| obsidian.nvim | Note taking | Obsidian vault integration |
| nvim-surround | Text objects | Easy manipulation of surrounding characters |
| kube-utils | Kubernetes | K8s cluster management tools |
| lazydocker.nvim | Docker | Docker container management |
The leader key is set to <Space>.
| Shortcut | Action | Mode |
|---|---|---|
<leader>ff |
Find files | Normal |
<leader>fg |
Live grep | Normal |
<leader>fb |
Find buffers | Normal |
<leader>e |
Toggle file explorer | Normal |
<leader>h |
Toggle Harpoon menu | Normal |
<leader>gg |
Open Lazygit | Normal |
<leader>dd |
Open Lazydocker | Normal |
More keybindings are documented in lua/core/keymaps.lua
- Create a new file in
lua/plugins/ - Follow the lazy.nvim plugin specification
- Restart Neovim to install the plugin
Example:
-- lua/plugins/my-plugin.lua
return {
"author/plugin-name",
config = function()
-- Plugin configuration
end
}- Neovim options: Edit
lua/core/options.lua - Key mappings: Edit
lua/core/keymaps.lua - Plugin configs: Edit files in
lua/plugins/
-
Plugins not installing:
# Try manually syncing plugins :Lazy sync -
LSP servers not working:
# Install LSP servers manually :Mason -
Fonts not displaying correctly:
- Ensure you have a Nerd Font installed
- Set your terminal to use the Nerd Font
Run :checkhealth in Neovim to diagnose configuration issues.
Feel free to:
- 🐛 Report bugs by opening an issue
- 💡 Suggest new features or improvements
- 🔧 Submit pull requests with enhancements