Skip to content

FelixSauer/nvim-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 My Neovim Configuration

A modern, feature-rich Neovim configuration focused on developer productivity and ease of use.

✨ Features

  • 🔧 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

📋 Requirements

  • Neovim >= 0.9.0
  • Git (for plugin management)
  • Node.js (for some LSP servers and Copilot)
  • A Nerd Font (recommended: JetBrains Mono Nerd Font)

🚀 Installation

Quick Install

# 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

Manual Setup

  1. Install Neovim (if not already installed):

    # macOS
    brew install neovim
    
    # Ubuntu/Debian
    sudo apt install neovim
    
    # Arch Linux
    sudo pacman -S neovim
  2. Install a Nerd Font:

    # macOS with Homebrew
    brew tap homebrew/cask-fonts
    brew install font-jetbrains-mono-nerd-font
  3. Clone and setup:

    git clone https://github.com/FelixSauer/nvim-config.git ~/.config/nvim
    nvim

🔧 Configuration Structure

~/.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

🔌 Plugin Manager

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

📦 Plugins Overview

🔧 Core Development Tools

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

🤖 AI & Code Assistance

Plugin Purpose Key Features
copilot.vim AI code completion GitHub Copilot integration
CopilotChat.nvim AI chat interface Interactive AI assistance for coding

🔍 Navigation & Search

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

🎨 UI & Visual Enhancements

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

🛠️ Development Tools

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

🔧 Git Integration

Plugin Purpose Key Features
lazygit.nvim Git interface Interactive git operations
git-blame.nvim Git annotations Line-by-line git blame information

🎯 Specialized Tools

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

⌨️ Key Mappings

Leader Key

The leader key is set to <Space>.

Essential Shortcuts

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

🔧 Customization

Adding New Plugins

  1. Create a new file in lua/plugins/
  2. Follow the lazy.nvim plugin specification
  3. Restart Neovim to install the plugin

Example:

-- lua/plugins/my-plugin.lua
return {
  "author/plugin-name",
  config = function()
    -- Plugin configuration
  end
}

Modifying Settings

  • Neovim options: Edit lua/core/options.lua
  • Key mappings: Edit lua/core/keymaps.lua
  • Plugin configs: Edit files in lua/plugins/

🆘 Troubleshooting

Common Issues

  1. Plugins not installing:

    # Try manually syncing plugins
    :Lazy sync
  2. LSP servers not working:

    # Install LSP servers manually
    :Mason
  3. Fonts not displaying correctly:

    • Ensure you have a Nerd Font installed
    • Set your terminal to use the Nerd Font

Health Check

Run :checkhealth in Neovim to diagnose configuration issues.

🤝 Contributing

Feel free to:

  • 🐛 Report bugs by opening an issue
  • 💡 Suggest new features or improvements
  • 🔧 Submit pull requests with enhancements

About

Personal nvim config based on kickstart.nvim

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages