https://github.com/vhstack/nvimpp
Minimal and efficient Neovim C++ Development Setup
https://github.com/vhstack/nvimpp
clangd cpp developer-tools development lsp neogen neovim neovim-config neovim-configuration nerdtree nvim nvim-config syntax-highlighting telescope treesitter
Last synced: about 2 months ago
JSON representation
Minimal and efficient Neovim C++ Development Setup
- Host: GitHub
- URL: https://github.com/vhstack/nvimpp
- Owner: vhstack
- Created: 2025-03-17T07:44:22.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-04-12T09:26:29.000Z (about 2 months ago)
- Last Synced: 2025-04-13T09:18:50.240Z (about 2 months ago)
- Topics: clangd, cpp, developer-tools, development, lsp, neogen, neovim, neovim-config, neovim-configuration, nerdtree, nvim, nvim-config, syntax-highlighting, telescope, treesitter
- Language: Lua
- Homepage:
- Size: 2.72 MB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# NeoVim C/C++ Development Setup
Dieses Repository enthält eine optimierte **NeoVim**-Konfiguration für die **C/C++-Entwicklung**
mit leistungsstarken Plugins für Autovervollständigung, Syntaxhervorhebung, Git-Integration und mehr.
Das Setup ist bewusst schlank gehalten – schnell startklar, fokussiert auf das Wesentliche und lässt sich leicht an
deine eigenen Bedürfnisse anpassen.
Zusammen mit meinen anderen Projekten **[vhstack/tmuxpp](https://github.com/vhstack/tmuxpp)** und **[vhstack/termpp](https://github.com/vhstack/termpp)**
bildet es eine perfekt abgestimmte Arbeitsumgebung, die dir eine nahtlose und effiziente Nutzung von Terminal, Tmux und Neovim ermöglicht.


## 🚀 Features
- **LSP-Unterstützung** für C/C++ mit automatischer Vervollständigung
- **Syntax-Highlighting** mit Treesitter
- **Git-Integration** direkt in NeoVim
- **Erweiterte Datei-Navigation** mit Telescope und NeoTree
- **Terminal-Integration** für reibungslose Entwicklungsabläufe## 📦 Installierte Plugins
| Plugin | Beschreibung |
|--------|-------------|
| `telescope` | Erweiterte Fuzzy-Suche und Datei-Navigation |
| `lsp` | Language Server Protocol (LSP) für C/C++-Unterstützung |
| `mason` | Einfaches Management von LSP-Servern, Debuggern und Lintern |
| `cmp` | Auto-Completion-Engine für besseren Code-Workflow |
| `nullls` | Unterstützung für Formatierung und statische Analyse (Linter) |
| `lualine` | Anpassbare Statusleiste für NeoVim |
| `gitsigns` | Git-Integration mit Inline-Diff-Anzeige |
| `treesitter` | Verbesserte Syntaxhervorhebung für C/C++ |
| `toggleterm` | Integriertes Terminal in NeoVim |
| `outline` | Anzeige der Symbolstruktur (z. B. Klassen, Funktionen) |
| `autopairs` | Automatische Klammer- und Anführungszeichen-Paare |
| `comments` | Einfaches Kommentieren von Codeblöcken |
| `buffline` | Erweiterte Buffer-Navigation |
| `blankline` | Visuelle Darstellung von Einrückungen |
| `neotree` | Dateimanager für verbesserte Navigation |
| `neogen` | Dokumentation Generator in Sourcen |
| `dashboard` | Startbildschirm für NeoVim mit Schnellzugriff |
| `whichkey` | Schnelle Anzeige von Tastenkombinationen |
| `transparent` | Transparenz Modus für Farbschema |## 🎨 Themen
**Installierte Farbthemen:**
- kanagawa
- onedark
- glowbeam
- catppuccin (catppuccin-latte, catppuccin-frappe, catppuccin-macchiato, catppuccin-mocha)**Standard-Theme:**
Das catppuccin-Farbschema und die Transparenz sind standardmäßig aktiviert.**Anpassungen:**
Diese Einstellungen können bei Bedarf in der Datei `.config/nvim/init.lua` angepasst werden.
Farbschema: `vim.g.colorscheme`
Transparenz: `vim.g.is_transparency_enabled`**Option für helle Themes:**
Fans von hellen Themes können nutzen:
`catppuccin-latte` (Variante von catppuccin) oder weitere Themes installieren.## 📥 Installation
1. **NeoVim installieren**
2. **Tool `regrep` installieren**
3. **Für LSP `clangd` installieren**
4. **Repository klonen & Git-Verzeichnis entfernen:**
```sh
git clone https://github.com/vhstack/nvimpp ~/.config/nvim
rm -rf ~/.config/nvim/.git ~/.config/nvim/assets ~/.config/nvim/README.md
```
5. **Plugins synchronisieren** mit dem Plugin-Manager (`Packer`, `Lazy`, etc.)
6. **LSPs & Tools installieren** über Mason (`:Mason` in NeoVim ausführen)```sh
# Optional: Um clangd zu installieren, öffne Neovim und führe folgenden Befehl aus:
:MasonInstall clangd cmake-language-server
```## 🖥️ Terminal Schriftart
Es wird empfohlen, eine Nerd Schriftart zu installieren, um eine optimale Darstellung von Symbolen und Glyphen im Terminal zu gewährleisten.Nerd Schriftarten sind unter [Nerd Fonts](https://www.nerdfonts.com/) verfügbar.
Gute Schriftarten fürs Coden sind: **Cascadia**, **FiraCode**, **DejaVuSansM**, **Cousine**
## 🛠 Konfiguration
### LSP Unterstützung
LSP Unterstützung kann in der Konfigurationsdatei `.config/nvim/init.lua` über die Variable `vim.g.is_lsp_enabled` aktiviert/deaktiviert werden.## ⌨ Grundlegende Tastenkombinationen
Dies ist eine Übersicht der wichtigsten Tastenkombinationen, die in meiner NeoVim-Konfiguration definiert sind.
Die Tasten sind als Lua-Key-Mappings konfiguriert und decken eine Vielzahl von Funktionen ab, von der Navigation bis hin zu spezifischen Plugins.
Diese Übersicht hilft dir, schnell die wichtigsten Befehle zu finden und zu nutzen.### Globale Leader Taste
| Kürzel | Bedeutung |
| --------- | ------------ |
| `` | Leader Taste |### F-Tasten
| Kürzel | Bedeutung |
| ------- | ----------------------------------- |
| `` | Neogen-Dokumentation generieren |
| `` | `make` ausführen |
| `` | `make clean` & `make -j3` ausführen |
| `` | Buffer schließen |### Navigation
| Kürzel | Bedeutung |
| ------- | ------------------- |
| `` | Fenster nach oben |
| `` | Fenster nach unten |
| `` | Fenster nach links |
| `` | Fenster nach rechts |
| `` | Fenster wechseln |### NeoTree
| Kürzel | Bedeutung |
| ------------ | -------------------------- |
| `E` | NeoTree als Float anzeigen |
| `e` | NeoTree links anzeigen |
| `gs` | Git-Status in NeoTree |
| `` | NeoTree links umschalten |### Telescope
| Kürzel | Bedeutung |
| ------------------ | ------------------------- |
| `` | Zuletzt geöffnete Dateien |
| `ff` | Dateien suchen |
| `fw` | Live-Grep-Suche |
| `fb` | Geöffnete Buffer |
| `fh` | Hilfetags durchsuchen |
| `` | Dateien suchen |
| `` | Live-Grep-Suche |
| `` | Buffer durchsuchen |### Git (Telescope)
| Kürzel | Bedeutung |
| ------------ | ------------ |
| `gb` | Git-Branches |
| `gc` | Git-Commits |
| `gd` | Git-Status |### Kommentare
| Kürzel | Bedeutung |
| ----------- | -------------------- |
| `/` | Kommentar umschalten |### Splits
| Kürzel | Bedeutung |
| ------ | ------------------- |
| `|` | Vertikales Split |
| `\` | Horizontales Split |### Tabs
| Kürzel | Bedeutung |
| --------- | ----------------------- |
| `` | Nächsten Tab wechseln |
| `` | Vorherigen Tab wechseln |
| `` | Nächsten Tab wechseln |
| `` | Vorherigen Tab wechseln |
| `` | Tab nach rechts verschieben |
| `` | Tab nach links verschieben |### Terminal
| Kürzel | Bedeutung |
| ------------ | --------------------- |
| `tt` | Terminal (Float) |
| `th` | Terminal (Horizontal) |
| `tv` | Terminal (Vertikal) |### LSP
| Kürzel | Bedeutung |
| ------------ | ------------------------ |
| `lg` | Diagnostik in Quickfix |
| `lG` | Diagnostik als Float |
| `` | Diagnostik mit Telescope |
| `[d` | Vorherige Diagnose |
| `]d` | Nächste Diagnose |
| `la` | Code Aktionen |
| `ld` | Zur Definition springen |
| `lD` | Zur Deklaration springen |
| `lK` | Hover-Dokumentation |
| `lr` | Referenzen anzeigen |
| `lt` | Typdefinition anzeigen |
| `lR` | Umbenennen |
| `lf` | Formatieren |
| `K` | Hover-Dokumentation |
| `t` | Zur Definition springen |
| `T` | Zur Deklaration springen |
| `` | Zur Deklaration springen |
| `` | Zurück springen |### Sonstige
| Kürzel | Bedeutung |
| ------------ | -------------------------- |
| `n` | Zeilennummern umschalten |
| `Y` | Ganze Zeile kopieren |
| `w` | Datei speichern |
| `x` | Buffer schließen |
| `s` | Buffer nach Tabs sortieren |
| `h` | Wort oder Auswahl farblich markieren |
| `H` | Alle Markierungen zurücksetzen |
| `T` | Transparenz umschalten |
| `pl` | Lazy Plugins öffnen |
| `pm` | Mason Plugins öffnen |🎯 Schlusswort
Wenn du Ideen für neue Features hast oder das Projekt verbessern möchtest,
dann fühl dich frei, es nach deinen Vorstellungen weiterzuentwickeln!
Viel Spaß und viel Erfolg beim Programmieren mit nvimpp! 💻🚀