Persönliche, mit GNU Stow verwaltete Konfigurationen für Neovim und Ghostty. Jedes Programm liegt in einem eigenen Paket, dessen Verzeichnisstruktur das Home-Verzeichnis abbildet.
.
├── nvim/
│ └── .config/nvim/
│ ├── init.lua
│ └── nvim-pack-lock.json
├── ghostty/
│ └── .config/ghostty/config
├── AGENTS.md
├── Brewfile
└── README.md
- Vim-Keybindings mit
Spaceals Leader-Taste - kontextabhängige Tastenkürzel-Hilfe mit which-key
- Datei-, Text-, Symbol- und Git-Suche mit fzf-lua
- Treesitter-Highlighting für PHP, JavaScript, TypeScript, TSX, Vue, JSON, HTML, CSS, Lua und Markdown
- LSP-Navigation und Diagnosen mit Intelephense, vtsls und Vue Language Server
- automatische helle und dunkle Nightfox-Variante entsprechend macOS
- Git-Hunks mit Gitsigns und vollständige Diffs mit Diffview
- Dateiverwaltung mit Oil
- automatisches Neuladen extern geänderter Dateien
Space bezeichnet im Folgenden die Leader-Taste. Space drücken und kurz
warten, um die möglichen Folgetasten mit which-key anzuzeigen.
| Taste | Aktion |
|---|---|
Space f f |
Dateien suchen |
Space f g |
Text im Projekt suchen |
Space f b |
offene Buffer suchen |
Space f h |
Neovim-Hilfe durchsuchen |
Space f k |
alle Tastenkürzel durchsuchen |
Space f r |
zuletzt verwendete Dateien |
| Taste | Aktion |
|---|---|
gd |
zur Definition springen |
K |
Dokumentation anzeigen |
grr |
Referenzen anzeigen |
grn |
Symbol umbenennen |
gra |
Code Actions anzeigen |
Space d s |
Symbole der aktuellen Datei suchen |
Space w s |
Symbole des Projekts suchen |
[d / ]d |
vorherige/nächste Diagnose |
Ctrl-w d |
Diagnose am Cursor anzeigen |
| Taste | Aktion |
|---|---|
Space g s |
geänderte Dateien suchen |
Space g c |
Commits durchsuchen |
Space g b |
Commits der aktuellen Datei durchsuchen |
[c / ]c |
vorherige/nächste Git-Änderung |
Space h p |
aktuelle Änderung als Vorschau anzeigen |
Space h b |
Blame der aktuellen Zeile anzeigen |
Space h d |
aktuellen Buffer mit Git vergleichen |
Space g d |
Projekt-Diff mit Diffview öffnen |
Space g h |
Dateiverlauf mit Diffview öffnen |
Diffview wird mit :DiffviewClose geschlossen.
| Taste | Aktion |
|---|---|
- |
Verzeichnis der Datei öffnen beziehungsweise nach oben wechseln |
Enter |
Datei oder Verzeichnis öffnen |
g? |
Oil-Hilfe anzeigen |
Oil stellt ein Verzeichnis als editierbaren Buffer dar. Umbenennungen oder
andere Dateioperationen werden erst mit :write angewendet.
Beim Start und nach einem Fokuswechsel wird das macOS-Erscheinungsbild geprüft:
- hell:
dayfox - dunkel:
nightfox
Eine Variante kann für die aktuelle Sitzung manuell gewählt werden:
:colorscheme dayfox
:colorscheme nightfoxDie Ghostty-Konfiguration enthält:
- Catppuccin Frappe im dunklen und Catppuccin Latte im hellen macOS-Modus
- Shell-Integration ohne Cursor-, sudo- und Titeländerungen
- Navigation mit
Cmd-Links/RechtsundAlt-Links/Rechts - Compose-Tastenkürzel für deutsche Umlaute und
ß - erweiterten Scrollback
Ghostty liest die verlinkte Konfiguration bei einem normalen Reload oder beim nächsten Start ein. Die Anwendung wird durch die Installation nicht neu gestartet.
- macOS
- Neovim 0.12 oder neuer
- Git
- Node.js und npm für die Language Server
- C-Compiler, curl und tar für Treesitter-Parser
- Homebrew
Alle verwalteten Pakete stehen im Brewfile und können mit brew bundle
installiert werden.
Falls noch kein C-Compiler vorhanden ist, können die Command Line Tools mit
xcode-select --install installiert werden.
Vorhandene Konfigurationen zuerst sichern:
mv ~/.config/nvim ~/.config/nvim.backup
mv ~/.config/ghostty ~/.config/ghostty.backupRepository klonen, Abhängigkeiten installieren und Pakete verlinken:
git clone git@github.com:djschilling/dotfiles.git ~/projects/dotfiles
cd ~/projects/dotfiles
brew bundle
stow --target="$HOME" nvim ghosttyEin einzelnes Paket kann unabhängig aktiviert oder entfernt werden:
stow --target="$HOME" nvim
stow --target="$HOME" --delete ghosttyBeim ersten Start installiert vim.pack die Plugins. Treesitter kompiliert
die benötigten Parser und Mason installiert Intelephense, vtsls und den Vue
Language Server. Nach der ersten Installation Neovim einmal neu starten.
Plugin-Updates prüfen und anschließend im angezeigten Bestätigungsbuffer mit
:write übernehmen:
:lua vim.pack.update()Nach einem Treesitter-Update auch die Parser aktualisieren:
:TSUpdateInstallierte Language Server können mit :Mason betrachtet und aktualisiert
werden. Änderungen an nvim-pack-lock.json sollten zusammen mit der
Konfiguration committed werden.
nvim/.config/nvim/init.lua: vollständige Neovim-Konfigurationnvim/.config/nvim/nvim-pack-lock.json: Plugin-Revisionsständeghostty/.config/ghostty/config: Ghostty-KonfigurationBrewfile: Systempakete und AnwendungenAGENTS.md: Wartungsregeln für AI-Agents