Files
2026-07-24 08:27:43 -05:00

199 lines
3.3 KiB
Markdown

# 🎨 Darcula Neovim
<p align="center">
A modern, cross-platform Neovim distribution for <strong>C/C++</strong>, <strong>Lua</strong>, and everyday development.
</p>
<p align="center">
![Platform](https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows-blue)
![Docker](https://img.shields.io/badge/Docker-Supported-2496ED?logo=docker)
![Neovim](https://img.shields.io/badge/Neovim-0.11+-57A143?logo=neovim)
![License](https://img.shields.io/badge/License-MIT-green)
</p>
---
## ✨ Highlights
- 🚀 Two complete editor environments
- **COC** (`viml.sh`)
- **Native LSP** (`viml2.sh`)
- 🐳 Fully reproducible Docker environments
- ⚡ Fast startup and modern UI
- 🌲 Tree-sitter syntax highlighting
- 🔭 Telescope fuzzy finder
- 🛠️ Clangd and Lua development
- 💾 Persistent editor state
- 🌎 Linux, macOS, and Windows support
---
## 🚀 Quick Start
### Local (COC)
```bash
./viml.sh .
```
### Local (Native LSP)
```bash
./viml2.sh .
```
### Docker (COC)
```bash
./build_nvim.sh
./dviml.sh .
```
### Docker (Native LSP)
```bash
./build_nvim2.sh
./dviml2.sh .
```
---
## 📂 Repository Scripts
| Script | Description |
|--------|-------------|
| `viml.sh` | Launch local COC configuration |
| `viml2.sh` | Launch local Native LSP configuration |
| `dviml.sh` | Launch Docker COC configuration |
| `dviml2.sh` | Launch Docker Native LSP configuration |
| `build_nvim.sh` | Build Docker COC image |
| `build_nvim2.sh` | Build Docker Native LSP image |
| `build_all.sh` | Build both Docker images |
---
## 🎯 Which Configuration?
### 🚀 COC
Best if you want:
- Rich completion
- Mature plugin ecosystem
- Extensive language support
- IDE-like experience
### ⚡ Native LSP
Best if you prefer:
- Pure Neovim
- Built-in LSP
- Lower memory usage
- Faster startup
- Minimal configuration
---
## 💻 Local Development
All launcher arguments are forwarded directly to Neovim.
Examples:
```bash
./viml.sh .
./viml.sh src/main.cpp
./viml.sh +150 src/main.cpp
./viml.sh -p file1.cpp file2.cpp
```
The same options work with `viml2.sh`.
---
## 🐳 Docker Development
Build once:
```bash
./build_nvim.sh
```
Launch:
```bash
./dviml.sh .
```
Or use the native LSP environment:
```bash
./build_nvim2.sh
./dviml2.sh .
```
> **Note:** `build_all.sh` builds both images and may remove unused Docker resources beforehand.
---
## ⚖️ Local vs Docker
| Local | Docker |
|------|------|
| ⚡ Fastest startup | 🔒 Fully isolated |
| 🖥️ Uses host toolchain | 📦 Reproducible environment |
| 💾 Native filesystem | 🧪 Great for testing |
| 🚀 Daily development | 🔄 Consistent across machines |
---
## 💾 Persistent Docker Data
Docker containers are disposable, but your editor state is not.
The Docker launchers preserve:
- Plugin installations
- Cache
- Undo history
- ShaDa history
- Swap files
Each environment maintains its own independent data directory.
---
## 📋 Requirements
### 🖥️ Local
- Git
- Supported shell
- Linux, macOS, or Windows
### 🐳 Docker
- Docker Engine
---
## 🤝 Contributing
Issues, feature requests, and pull requests are welcome.
If you encounter a bug, please include:
- Operating system
- Neovim version
- Launcher used (`viml`, `viml2`, `dviml`, or `dviml2`)
- Steps to reproduce
---
## 📄 License
Released under the **MIT License**.