Skip to content

Latest commit

 

History

History
261 lines (181 loc) · 9.71 KB

File metadata and controls

261 lines (181 loc) · 9.71 KB

🚀 Personal Neovim Configuration

A modern, feature-rich Neovim setup built for productivity and development workflow optimization.

📊 Config Stats: 54 plugins • 3 core configs • 9 file templates

✨ Key Features

🔧 Development Tools

  • Language Server Protocol (LSP) - Full IDE-like features with auto-completion, diagnostics, and code actions
  • Debug Adapter Protocol (DAP) - Integrated debugging support for multiple languages
  • Tree-sitter - Advanced syntax highlighting and code understanding
  • Auto-formatting - Code formatting with conform.nvim and language-specific tools
  • Linting - Real-time code analysis and error detection

🎨 User Interface

  • Catppuccin Theme - Beautiful, eye-friendly color scheme
  • Enhanced UI - Custom statusline, bufferline, and floating windows
  • File Explorer - Feature-rich nvim-tree with git integration
  • Fuzzy Finding - Telescope for lightning-fast file and content search

⚡ Productivity

  • Git Integration - Full git workflow with lazygit, gitsigns, and fugitive
  • Terminal Integration - Seamless terminal and tmux navigation
  • Session Management - Project-aware sessions and workspace restoration
  • Snippet System - Extensive snippet collection for faster coding

🧪 Testing & Quality

  • Neotest - Integrated test runner with language-specific adapters
  • Code Coverage - Visual coverage indicators
  • Pre-commit Hooks - Automated code quality checks and documentation generation

🛠️ Installation

Prerequisites

  • Neovim 0.10.0+ or later
  • Git for plugin management
  • Node.js for LSP servers
  • Python and pip for additional tools
  • Ripgrep for fast searching
  • A Nerd Font for icons

Quick Setup

# Backup existing config (optional)
mv ~/.config/nvim ~/.config/nvim.backup

# Clone this configuration
git clone https://github.com/remoterabbit/nvim.git ~/.config/nvim

# Start Neovim (plugins will auto-install)
nvim

📂 Structure

~/.config/nvim/
├── 📁 lua/
│   ├── 📁 config/          # Core configuration
│   │   ├── options.lua     # Neovim options
│   │   ├── keymaps.lua     # Global keymaps
│   │   └── lazy.lua        # Plugin manager setup
│   └── 📁 plugins/         # Plugin configurations
├── 📁 docs/                # Auto-generated documentation
│   ├── KEYBINDINGS.md      # Comprehensive keybinding reference
│   └── PLUGINS.md          # Detailed plugin documentation
├── 📁 scripts/             # Automation scripts
├── 📁 templates/           # File templates
├── init.lua               # Entry point
└── stylua.toml           # Code formatting config

📚 Documentation

⌨️ Key Mappings

Leader Key: <space>

Category Key Description
Files <leader>ff Find files
Search <leader>fg Live grep
Git <leader>gg LazyGit
LSP <leader>ca Code actions
Debug <leader>dt Toggle breakpoint

💡 Tip: Press <space> in normal mode to see all available keybindings with which-key.

🔧 Customization

Adding New Plugins

  1. Create a new file in lua/plugins/
  2. Follow the existing plugin structure
  3. Run :Lazy to manage plugins

Language Support

This configuration includes LSP support for:

  • Python (Pyright)
  • JavaScript/TypeScript (ts_ls)
  • Lua (lua_ls)
  • Go (gopls)
  • Rust (rust-analyzer)
  • And many more...

🤝 Contributing

Found a bug or want to add a feature? Contributions are welcome!

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run pre-commit hooks: pre-commit run --all-files
  5. Submit a pull request

📄 License

This configuration is released into the public domain under the Unlicense.


Star this repo if you find it useful!

Installed Plugins (73 total)

🔧 Language & LSP

🎨 UI & Themes

🔍 Navigation & Search

💡 Completion

✏️ Editing

📝 Git Integration

🐛 Testing & Debugging

💻 Terminal

🔌 Other Plugins