This commit is contained in:
2026-09-28 17:48:58 +02:00
parent 89c2cda81c
commit 455245664f
18 changed files with 5520 additions and 2 deletions
+140
View File
@@ -0,0 +1,140 @@
Kurz gesagt: **Nein – GNU Stow führt keine Skripte aus.**
Und das ist auch Absicht 🙂
GNU Stow macht **nur eine Sache**:
> Es erzeugt und entfernt Symlinks.
Keine Hooks.
Keine Post-Deploy-Skripte.
Keine Automatik.
---
# 🧠 Warum ist das so?
Stow ist bewusst:
* minimalistisch
* deterministisch
* side-effect-frei
Dadurch bleibt dein Setup transparent und reproduzierbar.
---
# ✅ Aber: Man kann es kombinieren
Wenn du beim „Deploy“ zusätzlich Dinge tun willst (z. B. Monitor-Symlink setzen, Pakete installieren, Cache leeren, etc.), gibt es saubere Lösungen:
---
# 🔹 Lösung 1: Bootstrap-Script (empfohlen)
Du schreibst dir ein Script wie:
```bash
#!/bin/bash
set -e
cd ~/dotfiles
echo "→ Stowing configs"
stow hypr
stow waybar
stow zsh
echo "→ Setting monitor config"
ln -sf desktop.conf hypr/.config/hypr/monitors/current.conf
echo "→ Reloading Hyprland"
hyprctl reload
```
Dann einfach:
```bash
./install.sh
```
💡 Das ist die professionellste Lösung.
---
# 🔹 Lösung 2: Hostname-basierte Logik im Script
```bash
HOST=$(hostname)
if [[ "$HOST" == "desktop" ]]; then
ln -sf desktop.conf hypr/.config/hypr/monitors/current.conf
elif [[ "$HOST" == "laptop" ]]; then
ln -sf laptop.conf hypr/.config/hypr/monitors/current.conf
fi
```
Dann musst du nichts manuell wählen.
---
# 🔹 Lösung 3: Makefile (sehr elegant)
Beispiel:
```make
install:
stow hypr
stow waybar
./scripts/select-monitor.sh
```
Dann:
```bash
make install
```
Sehr beliebt in Dotfile-Repos.
---
# 🔹 Lösung 4: „echte“ Dotfile-Manager
Wenn du wirklich Logik + Templates willst:
* chezmoi
* yadm
Diese können:
* Hostname erkennen
* Variablen verwenden
* Templates generieren
* Skripte ausführen
Aber sie sind komplexer als Stow.
---
# 🎯 Empfehlung für dich (Hyprland + mehrere Systeme)
Da du:
* Monitor-Configs pro System brauchst
* wahrscheinlich Arch nutzt
* modular arbeiten willst
👉 **Stow + Bootstrap-Script** ist die perfekte Balance.
---
# 💬 Kurzantwort auf deine Frage
| Frage | Antwort |
| ------------------------ | ----------------- |
| Führt Stow Skripte aus? | ❌ Nein |
| Kann man es kombinieren? | ✅ Ja |
| Beste Praxis? | Stow + install.sh |
---
+15
View File
@@ -0,0 +1,15 @@
[[Linux Musikprogramme]]
[[Softlinks 1]]
[[Synchronisation & Backup 1]]
# Konsolen Know-How
[[Linux Konsole Zeichen löschen]]
[[Paketinstallation aus tar.gz]]
[[Disable KVM for VirtualBox]]
[[Linux Terminal Shortcut]]
[[Drives & Mounts 1]]
[[Computerkram/find]]
[[Link-Verknüpfung in Linux]]
+458
View File
@@ -0,0 +1,458 @@
Hier ist ein kompaktes, aber vollständiges **VIM Cheat Sheet** 📝
---
## 🔹 Modi in VIM
|Modus|Bedeutung|Wechsel|
|---|---|---|
|**Normal Mode**|Navigation & Befehle|`Esc`|
|**Insert Mode**|Texteingabe|`i`, `a`, `o`, etc.|
|**Visual Mode**|Text markieren|`v`, `V`, `Ctrl+v`|
|**Command Mode**|Speichern, Beenden, etc.|`:`|
---
## 🔹 Insert Mode Befehle
|Befehl|Wirkung|
|---|---|
|`i`|Vor Cursor einfügen|
|`a`|Nach Cursor einfügen|
|`I`|Am Zeilenanfang einfügen|
|`A`|Am Zeilenende einfügen|
|`o`|Neue Zeile unterhalb|
|`O`|Neue Zeile oberhalb|
---
## 🔹 Navigation (Normal Mode)
### Zeichenweise
```
h ← j ↓ k ↑ l →
```
### Wortweise
```
w nächstes Wort
b vorheriges Wort
e Wortende
```
### Zeilenweise
```
0 Zeilenanfang
^ Erstes Nicht-Leerzeichen
$ Zeilenende
```
### Datei
```
gg Anfang der Datei
G Ende der Datei
:n Gehe zu Zeile n
```
---
## 🔹 Löschen
|Befehl|Wirkung|
|---|---|
|`x`|Zeichen löschen|
|`dd`|Zeile löschen|
|`dw`|Wort löschen|
|`d$`|Bis Zeilenende löschen|
|`d0`|Bis Zeilenanfang löschen|
💡 Kombination: `d` + Bewegung funktioniert immer
(z.B. `d3w` = 3 Wörter löschen)
---
## 🔹 Kopieren & Einfügen
|Befehl|Wirkung|
|---|---|
|`yy`|Zeile kopieren|
|`yw`|Wort kopieren|
|`p`|Nach Cursor einfügen|
|`P`|Vor Cursor einfügen|
#### Register
Vor alle Kopieren oder Einfügen Befehle kann ein `"3` gestellt werden, um ins 3. Register zu schreiben bzw. daraus heraus zu lesen. Z.b. kopiert `"7yw` das Wort ins 7. Register und `"4p` fügt das 4. Register nach dem Curser ein.
💡 Das spezielle Register `+`/`*` ist das System-Clipboard, sehr Praktisch zum Austausch von Text mit anderen Programmen
Alle Register ansehen: `:reg`
💡 Das spezielle Register `%` enthält den aktuellen Dateipfad -> aktuelle Dateipfad in System-Clipboard: `:let @+=@%`.
---
## 🔹 Undo / Redo
```
u Undo
Ctrl+r Redo
```
---
## 🔹 Visual Mode
|Befehl|Wirkung|
|---|---|
|`v`|Zeichenweise markieren|
|`V`|Ganze Zeile markieren|
|`Ctrl+v`|Block markieren|
Nach Markierung:
```
d löschen
y kopieren
> einrücken
< ausrücken
```
---
## 🔹 Suchen & Ersetzen
```
/text Vorwärts suchen
?text Rückwärts suchen
n Nächstes Ergebnis
N Vorheriges Ergebnis
```
Ersetzen:
```
:%s/alt/neu/g Ganze Datei
:s/alt/neu/g Aktuelle Zeile
:%s/alt/neu/gc Mit Bestätigung
```
---
## 🔹 Speichern & Beenden
```
:w Speichern
:q Beenden
:wq Speichern & Beenden
:x Speichern & Beenden
:q! Ohne Speichern beenden
```
---
## 🔹 Fenster & Tabs
```
:split Horizontal teilen
:vsplit Vertikal teilen
Ctrl+w w Zwischen Fenstern wechseln
:tabnew Neuer Tab
gt Nächster Tab
gT Vorheriger Tab
```
---
## 🔹 Nützliche Shortcuts
```
. Letzte Aktion wiederholen
>> Zeile einrücken
<< Zeile ausrücken
ciw Wort ändern
cc Zeile ändern
J Zeilen zusammenführen
```
---
## 🔹 Makros
```
qa Aufnahme in Register a starten
q Aufnahme stoppen
@a Makro a ausführen
@@ Letztes Makro wiederholen
```
---
## 🔹 Zahlen-Präfixe (Sehr wichtig!)
Viele Befehle lassen sich multiplizieren:
```
3dd 3 Zeilen löschen
5w 5 Wörter vor
2yy 2 Zeilen kopieren
```
---
# Zeilennummern aus- und anschalten
---
## 🔹 Absolute Zeilennummern
### Einschalten:
```vim
:set number
```
### Ausschalten:
```vim
:set nonumber
```
### Toggle:
```vim
:set number!
```
---
## 🔹 Relative Zeilennummern
### Einschalten:
```vim
:set relativenumber
```
### Ausschalten:
```vim
:set norelativenumber
```
### Toggle:
```vim
:set relativenumber!
```
---
## 🔹 Absolute + Relative kombinieren (Sehr beliebt 🔥)
Viele nutzen diese Kombination:
```vim
:set number relativenumber
```
👉 Ergebnis:
* Aktuelle Zeile = **absolute Nummer**
* Alle anderen Zeilen = **relative Nummern**
Beispiel:
```
8
2
1
10 ← aktuelle Zeile
1
2
3
```
Das ist perfekt für Bewegungen wie:
```
5j
3k
```
---
## 🔹 Dauerhaft aktivieren (.vimrc)
In deiner `~/.vimrc`:
```vim
set number
set relativenumber
```
---
## 🔹 Smart Toggle Mapping (Optional ⭐)
Viele nutzen ein Keybinding:
```vim
nnoremap <leader>n :set number! relativenumber!<CR>
```
Dann kannst du mit:
```
\ n
```
(beim Standard-`leader`) beide gleichzeitig toggeln.
---
# Block Aus- und Einkommentieren
---
# 🔹 1️⃣ Rein mit Vim (ohne Plugin)
## ✅ Ganze Zeilen im Visual Mode kommentieren
### Schritt 1: Block markieren
* `V` → Zeilenweise markieren
* `j / k` → Bereich wählen
### Schritt 2: Kommentarzeichen einfügen
Beispiel für `#`:
```vim
:s/^/# /
```
Im Visual Mode einfach:
```vim
:'<,'>s/^/# /
```
👉 Fügt `# ` am Anfang jeder markierten Zeile ein.
---
## 🔹 Auskommentieren
```vim
:'<,'>s/^# //
```
---
## 🔹 Noch schneller (ohne `:` tippen)
Markieren mit `V`, dann:
```vim
:s/^/# /
```
Vim setzt `'<,'>` automatisch.
---
# 🔹 2️⃣ Noch effizienter: Visual Block Mode (Sehr elegant ⚡)
Perfekt für feste Kommentarzeichen wie `#`, `//`, `--`.
### Schritt 1
```
Ctrl + v
```
### Schritt 2
Mit `j/k` mehrere Zeilen markieren (nur Spalte 0)
### Schritt 3
```
Shift + i
#
Esc
```
💥 Vim fügt das in alle markierten Zeilen ein.
---
## 🔹 Entfernen mit Block Mode
1. `Ctrl + v`
2. Erste 2 Zeichen (`# `) markieren
3. `d`
---
# 🔹 3️⃣ Beste Lösung: Plugin (Empfohlen 🔥)
Wenn du regelmäßig kommentierst → nimm ein Plugin.
Sehr beliebt:
* vim-commentary von Tim Pope
### Installation (mit vim-plug):
```vim
Plug 'tpope/vim-commentary'
```
### Nutzung:
* `gcc` → aktuelle Zeile toggeln
* `gc` (im Visual Mode) → Block toggeln
💎 Vorteil:
* erkennt automatisch Kommentarzeichen je nach Dateityp
* funktioniert mit `//`, `#`, `--`, `/* */`, etc.
---
# 🔹 4️⃣ Absolute Power-User Lösung (Ohne Plugin, aber smart)
In `.vimrc`:
```vim
vnoremap <leader>c :s/^/# /<CR>
vnoremap <leader>u :s/^# //<CR>
```
Dann:
```
\c → kommentieren
\u → auskommentieren
```
---
# 🔥 Meine Empfehlung
| Wenn du... | Lösung |
| ----------------------------- | ----------------- |
| Nur selten kommentierst | Visual Block Mode |
| Viel programmierst | vim-commentary |
| Minimalistisch bleiben willst | eigenes Mapping |
---
# Verschiedenes
- `%`: zur nächsten Klammer
- `TOhtml`: HTML Export
- `:ls`: Buffer anzeigen -> `:b 3` den 3. Buffer öffnen
- `.` : letzte Aktion wiederholen
- `:e path/to/file` öffnet Datei, nur `:e` aktualisiert die geöffnete Datei, `:e!` verwirft dabei alle Änderungen