kickstart.nvim/README.md

264 lines
8.7 KiB
Markdown

# 🚀 Kickstart.nvim - Professional Edition
> A powerful, modular Neovim configuration built on kickstart.nvim, enhanced with LazyVim-style organization and comprehensive language support.
[![Neovim](https://img.shields.io/badge/Neovim-0.11.4+-57A143?style=for-the-badge&logo=neovim&logoColor=white)](https://neovim.io/)
[![Lua](https://img.shields.io/badge/Lua-5.1+-2C2D72?style=for-the-badge&logo=lua&logoColor=white)](https://www.lua.org/)
[![License](https://img.shields.io/badge/License-MIT-blue?style=for-the-badge)](./LICENSE.md)
---
## ✨ Features
### 🎨 **LazyVim-Style Interface**
- Beautiful which-key menu with icons and intuitive groupings
- Consistent keybindings across all plugins (Telescope, Neo-tree, etc.)
- Comprehensive searchable cheatsheet with 200+ keymaps (`<Leader>sc`)
### 🛠️ **Language Support**
- **Flutter/Dart**: Full Flutter tools integration with device management
- **Rust**: rust-analyzer + Crates.io integration for dependency management
- **Python**: Pyright LSP with virtual environment support
- **Svelte**: Complete web development setup
- **Go, TypeScript, Lua**: Pre-configured LSP servers
### 🔍 **Advanced Tooling**
- **Telescope**: Fuzzy finder for files, git, LSP, and more
- **Neo-tree**: File explorer with git integration
- **nvim-dap**: Full debugging support for all languages
- **Gitsigns**: Git integration with blame, hunk navigation, and staging
- **Mini.nvim**: Surround, autopairs, comments, and more
### 📚 **Comprehensive Documentation**
- In-editor cheatsheet accessible anytime
- Progressive learning path from basics to advanced
- Vim mastery tips to build your skills over time
---
## 📋 Requirements
### Core Dependencies
- **Neovim** 0.11.4+ (stable or nightly)
- **Git** for plugin management
- **C Compiler** (gcc/clang) for TreeSitter
- **Make** and **unzip**
### Recommended Tools
- **ripgrep** - Fast file searching (required for Telescope)
- **fd** - Fast file finding
- **Nerd Font** - Icons support (set `vim.g.have_nerd_font = true`)
- **Clipboard tool** - xclip (Linux), pbcopy (macOS), win32yank (Windows)
### Language-Specific
- **Node.js** & **npm** - TypeScript, Svelte, web development
- **Python 3** - Python development
- **Rust** & **Cargo** - Rust development
- **Flutter SDK** - Flutter/Dart development
- **Go** - Go development
---
## 🚀 Quick Start
### 1. Backup Existing Config
```bash
# macOS/Linux
mv ~/.config/nvim ~/.config/nvim.backup
mv ~/.local/share/nvim ~/.local/share/nvim.backup
mv ~/.local/state/nvim ~/.local/state/nvim.backup
mv ~/.cache/nvim ~/.cache/nvim.backup
```
### 2. Clone This Configuration
```bash
git clone https://github.com/anupjsebastian/kickstart.nvim.git ~/.config/nvim
cd ~/.config/nvim
```
### 3. Install Dependencies
```bash
# macOS (using Homebrew)
brew install neovim ripgrep fd
# Ubuntu/Debian
sudo apt install neovim ripgrep fd-find
# Arch Linux
sudo pacman -S neovim ripgrep fd
```
### 4. Launch Neovim
```bash
nvim
```
On first launch:
- Lazy.nvim will automatically install all plugins
- TreeSitter will compile language parsers
- LSP servers will be installed via Mason
- Wait for all installations to complete (check bottom right)
### 5. Verify Installation
```vim
:checkhealth
```
---
## 📖 Documentation
### Essential Reading
- **[Getting Started](docs/getting-started/README.md)** - First-time setup and orientation
- **[Installation Guide](docs/getting-started/installation.md)** - Detailed installation steps
- **[Quick Reference](docs/getting-started/quick-reference.md)** - Most common commands
### Core Guides
- **[Keymaps Reference](docs/keymaps/README.md)** - Complete keymap documentation
- [Core Keymaps](docs/keymaps/core.md) - Leader key organization
- [LSP Keymaps](docs/keymaps/lsp.md) - Language Server Protocol commands
- [Plugin Keymaps](docs/keymaps/plugins.md) - Telescope, Neo-tree, etc.
- [Duplicates Guide](docs/keymaps/duplicates.md) - Understanding multiple keys for same action
- **[Plugins Guide](docs/plugins/README.md)** - Plugin documentation
- [Core Plugins](docs/plugins/core.md) - Essential plugins (Telescope, Neo-tree, which-key)
- [Editor Plugins](docs/plugins/editor.md) - Editing enhancements
- [LSP & Completion](docs/plugins/lsp.md) - Language features
- [Debug Adapter](docs/plugins/debug.md) - Debugging setup
- **[Language Setup](docs/languages/README.md)** - Language-specific configuration
- [Flutter/Dart](docs/languages/flutter.md)
- [Rust](docs/languages/rust.md)
- [Python](docs/languages/python.md)
- [Svelte](docs/languages/svelte.md)
- [Other Languages](docs/languages/others.md)
### Advanced Topics
- **[Vim Mastery](docs/vim-mastery/README.md)** - Progressive skill building
- [Week 1: Motion Basics](docs/vim-mastery/week-01-motions.md)
- [Week 2: Text Objects](docs/vim-mastery/week-02-text-objects.md)
- [Week 3: Advanced Editing](docs/vim-mastery/week-03-advanced.md)
- [Week 4: Macros & Registers](docs/vim-mastery/week-04-macros.md)
- [Tips & Tricks](docs/vim-mastery/tips-and-tricks.md)
- [Workflow Optimization](docs/vim-mastery/workflows.md)
- **[Customization](docs/customization.md)** - Making it your own
- **[Troubleshooting](docs/troubleshooting.md)** - Common issues and solutions
- **[FAQ](docs/faq.md)** - Frequently asked questions
---
## 🎯 Quick Access Cheatsheet
### In-Editor Help
- `<Leader>sc` - Open comprehensive cheatsheet (searchable!)
- `<Leader>sk` - Search all keymaps with Telescope
- `<Leader>?` - Quick keymap search
- `<Leader>sK` - Which-key command palette
### Essential Keymaps
| Keymap | Action | Category |
|--------|--------|----------|
| `<Leader>sf` | Find files | Search |
| `<Leader>sg` | Live grep | Search |
| `<Leader>bb` | List buffers | Buffer |
| `\` | Toggle Neo-tree | Files |
| `<Leader>gg` | LazyGit | Git |
| `<Leader>dc` or `F5` | Start debugging | Debug |
| `K` | Hover documentation | LSP |
| `gra` | Code actions | LSP |
> **Pro Tip**: Press `<Leader>` and wait - which-key will show you all available keymaps!
---
## 🏗️ Project Structure
```
~/.config/nvim/
├── init.lua # Entry point
├── lua/
│ ├── config/
│ │ ├── keymaps.lua # Global keymaps
│ │ ├── lazy.lua # Plugin manager setup
│ │ └── options.lua # Neovim options
│ ├── plugins/
│ │ ├── core/ # Essential plugins
│ │ │ ├── editor.lua # Telescope, which-key
│ │ │ ├── neo-tree.lua # File explorer
│ │ │ ├── debug.lua # Debug adapter
│ │ │ └── cheatsheet.lua # In-editor help
│ │ └── lang/ # Language-specific
│ │ ├── flutter.lua
│ │ ├── rust.lua
│ │ ├── python.lua
│ │ └── svelte.lua
│ └── kickstart/
│ └── plugins/ # Additional plugins
└── docs/ # Documentation
├── getting-started/
├── keymaps/
├── plugins/
├── languages/
└── vim-mastery/
```
---
## 🎨 Philosophy
This configuration follows these principles:
1. **Modular**: Each plugin in its own file, easy to enable/disable
2. **Discoverable**: Comprehensive which-key menus and cheatsheet
3. **Consistent**: Same keys work the same way across plugins
4. **Progressive**: Learn at your own pace with structured guides
5. **Documented**: Every keymap and feature explained
6. **Extensible**: Easy to customize and add your own plugins
---
## 🤝 Contributing
Found a bug? Have a suggestion? Contributions are welcome!
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
---
## 📝 License
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.
---
## 🙏 Acknowledgments
- **[kickstart.nvim](https://github.com/nvim-lua/kickstart.nvim)** - The foundation of this config
- **[LazyVim](https://www.lazyvim.org/)** - Inspiration for keybinding organization
- **[AstroVim](https://astronvim.com/)** - Cheatsheet inspiration
- **Neovim Community** - Amazing plugins and support
---
## 📚 Learn More
- [Neovim Documentation](https://neovim.io/doc/)
- [Lua Guide for Neovim](https://github.com/nanotee/nvim-lua-guide)
- [Awesome Neovim Plugins](https://github.com/rockerBOO/awesome-neovim)
- [This Configuration's Full Documentation](docs/README.md)
---
<div align="center">
**Built with ❤️ using Neovim**
[Get Started](docs/getting-started/README.md) • [Keymaps](docs/keymaps/README.md) • [Plugins](docs/plugins/README.md) • [Languages](docs/languages/README.md)
</div>