diff options
| author | Thomas Schmucker <ts@its1.de> | 2026-07-23 11:20:49 +0200 |
|---|---|---|
| committer | Thomas Schmucker <ts@its1.de> | 2026-07-23 11:20:49 +0200 |
| commit | b04598d71f18227af87cb04890b4dee5d38bd753 (patch) | |
| tree | 804549b2782e8dd05c5b78bf84364f050cf1e39c | |
| parent | 41ebdaff90a0b23262bf89c08444de20469c2232 (diff) | |
| download | dotfiles-b04598d71f18227af87cb04890b4dee5d38bd753.tar.gz dotfiles-b04598d71f18227af87cb04890b4dee5d38bd753.tar.bz2 dotfiles-b04598d71f18227af87cb04890b4dee5d38bd753.zip | |
windows: Bootstrap-Skripte nach bootstrap-win/ verschoben, -win-Suffix entfernt
bootstrap/neovim-win.ps1 -> bootstrap-win/neovim.ps1
bootstrap/neovim-dict-win.ps1 -> bootstrap-win/neovim-dict.ps1
Eigenes Verzeichnis statt Suffix pro Datei, analog zu windows/ fuer
gmake.cmd. bootstrap/ (POSIX, macOS/FreeBSD) bleibt unveraendert.
Referenzen in neovim-windows-setup.md aktualisiert.
Nebenbei: eine unerklaerte, nicht selbst vorgenommene Aenderung an
nvim/lua/config/treesitter.lua (fuegte 'powershell' zur Sprachliste
hinzu) verworfen statt versehentlich mit einzuchecken.
| -rw-r--r-- | bootstrap-win/neovim-dict.ps1 (renamed from bootstrap/neovim-dict-win.ps1) | 4 | ||||
| -rw-r--r-- | bootstrap-win/neovim.ps1 (renamed from bootstrap/neovim-win.ps1) | 2 | ||||
| -rw-r--r-- | neovim-windows-setup.md | 10 |
3 files changed, 8 insertions, 8 deletions
diff --git a/bootstrap/neovim-dict-win.ps1 b/bootstrap-win/neovim-dict.ps1 index 6c0c710..7909ffa 100644 --- a/bootstrap/neovim-dict-win.ps1 +++ b/bootstrap-win/neovim-dict.ps1 | |||
| @@ -5,10 +5,10 @@ | |||
| 5 | bootstrap/neovim-dict.sh bleibt unveraendert. | 5 | bootstrap/neovim-dict.sh bleibt unveraendert. |
| 6 | 6 | ||
| 7 | Aufruf: | 7 | Aufruf: |
| 8 | .\bootstrap\neovim-dict-win.ps1 | 8 | .\bootstrap-win\neovim-dict.ps1 |
| 9 | 9 | ||
| 10 | Falls die Ausfuehrung durch die Execution Policy blockiert wird: | 10 | Falls die Ausfuehrung durch die Execution Policy blockiert wird: |
| 11 | powershell -ExecutionPolicy Bypass -File .\bootstrap\neovim-dict-win.ps1 | 11 | powershell -ExecutionPolicy Bypass -File .\bootstrap-win\neovim-dict.ps1 |
| 12 | #> | 12 | #> |
| 13 | 13 | ||
| 14 | $ErrorActionPreference = "Stop" | 14 | $ErrorActionPreference = "Stop" |
diff --git a/bootstrap/neovim-win.ps1 b/bootstrap-win/neovim.ps1 index 8af6140..548583e 100644 --- a/bootstrap/neovim-win.ps1 +++ b/bootstrap-win/neovim.ps1 | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | powershell.exe) - keine Git-Bash- oder WSL-Abhaengigkeit. | 9 | powershell.exe) - keine Git-Bash- oder WSL-Abhaengigkeit. |
| 10 | 10 | ||
| 11 | Aufruf (PowerShell, keine Admin-Rechte noetig): | 11 | Aufruf (PowerShell, keine Admin-Rechte noetig): |
| 12 | .\bootstrap\neovim-win.ps1 | 12 | .\bootstrap-win\neovim.ps1 |
| 13 | 13 | ||
| 14 | Hinweis: Einzelne winget-Paket-IDs (v.a. GnuWin32.Gawk, GnuWin32.Libxml2, | 14 | Hinweis: Einzelne winget-Paket-IDs (v.a. GnuWin32.Gawk, GnuWin32.Libxml2, |
| 15 | google.yamlfmt, mvdan.shfmt, astral-sh.ruff) konnten in dieser Session | 15 | google.yamlfmt, mvdan.shfmt, astral-sh.ruff) konnten in dieser Session |
diff --git a/neovim-windows-setup.md b/neovim-windows-setup.md index 4faecd8..00d41e1 100644 --- a/neovim-windows-setup.md +++ b/neovim-windows-setup.md | |||
| @@ -7,12 +7,12 @@ Alle Windows-Skripte in diesem Repo sind reines PowerShell (kein Git Bash, kein | |||
| 7 | ## 0. Von Hand zu erledigen (nicht durch Skripte abgedeckt) | 7 | ## 0. Von Hand zu erledigen (nicht durch Skripte abgedeckt) |
| 8 | 8 | ||
| 9 | - **Execution Policy** setzen (siehe oben), sonst starten die `.ps1`-Skripte gar nicht. | 9 | - **Execution Policy** setzen (siehe oben), sonst starten die `.ps1`-Skripte gar nicht. |
| 10 | - **`winget` selbst muss vorhanden sein** ("App Installer" aus dem Microsoft Store) – `bootstrap/neovim-win.ps1` prüft das und bricht mit klarer Meldung ab, kann `winget` aber nicht selbst nachinstallieren. | 10 | - **`winget` selbst muss vorhanden sein** ("App Installer" aus dem Microsoft Store) – `bootstrap-win/neovim.ps1` prüft das und bricht mit klarer Meldung ab, kann `winget` aber nicht selbst nachinstallieren. |
| 11 | - **Neovim selbst installieren** (`winget install Neovim.Neovim`, Abschnitt 1) – kein Skript hier installiert Neovim, nur seine Config/Abhängigkeiten. | 11 | - **Neovim selbst installieren** (`winget install Neovim.Neovim`, Abschnitt 1) – kein Skript hier installiert Neovim, nur seine Config/Abhängigkeiten. |
| 12 | - **`delta` installieren** (`git/config` setzt `pager = delta` und `diffFilter = delta --color-only`). War auch unter macOS/FreeBSD nie Teil von `bootstrap/neovim.sh` – wurde dort offenbar immer manuell nachgezogen. Unter Windows z. B. `winget install dandavison.delta` (ID ungeprüft, ggf. `winget search delta` gegenchecken). | 12 | - **`delta` installieren** (`git/config` setzt `pager = delta` und `diffFilter = delta --color-only`). War auch unter macOS/FreeBSD nie Teil von `bootstrap/neovim.sh` – wurde dort offenbar immer manuell nachgezogen. Unter Windows z. B. `winget install dandavison.delta` (ID ungeprüft, ggf. `winget search delta` gegenchecken). |
| 13 | - **Nach jedem Skript-Lauf ein neues Terminal öffnen**, bevor `nvim` das erste Mal gestartet wird. PATH-Änderungen (durch winget/npm-Installer oder `install-win.ps1`) landen in der Registry, aber die aktuell offene Shell bekommt das nicht automatisch mit. | 13 | - **Nach jedem Skript-Lauf ein neues Terminal öffnen**, bevor `nvim` das erste Mal gestartet wird. PATH-Änderungen (durch winget/npm-Installer oder `install-win.ps1`) landen in der Registry, aber die aktuell offene Shell bekommt das nicht automatisch mit. |
| 14 | - **PATH-Registrierung stichprobenartig prüfen**, vor allem bei den GnuWin32-Paketen (`jq`, `gawk`, `make`, `libxml2`/`xmllint`) – ältere/portable winget-Pakete tragen sich nicht immer automatisch in den PATH ein. Nach einem neuen Terminal kurz `Get-Command jq, gawk, make, xmllint` aufrufen; fehlt eins, dessen Installationsordner manuell zum User-PATH hinzufügen (gleiches Muster wie `Add-BinToUserPath` in `install-win.ps1`). | 14 | - **PATH-Registrierung stichprobenartig prüfen**, vor allem bei den GnuWin32-Paketen (`jq`, `gawk`, `make`, `libxml2`/`xmllint`) – ältere/portable winget-Pakete tragen sich nicht immer automatisch in den PATH ein. Nach einem neuen Terminal kurz `Get-Command jq, gawk, make, xmllint` aufrufen; fehlt eins, dessen Installationsordner manuell zum User-PATH hinzufügen (gleiches Muster wie `Add-BinToUserPath` in `install-win.ps1`). |
| 15 | - **Reihenfolge**: `install-win.ps1` und `bootstrap/neovim-win.ps1` sind unabhängig voneinander, `bootstrap/neovim-dict-win.ps1` ebenso. Empfehlenswert: erst Neovim/Git/Node (Abschnitt 1) installieren, dann beide Bootstrap-Skripte laufen lassen, dann neues Terminal öffnen, dann `nvim` starten (lädt beim ersten Start automatisch alle Lua-Plugins via `lazy.nvim` – Internetverbindung nötig). | 15 | - **Reihenfolge**: `install-win.ps1` und `bootstrap-win/neovim.ps1` sind unabhängig voneinander, `bootstrap-win/neovim-dict.ps1` ebenso. Empfehlenswert: erst Neovim/Git/Node (Abschnitt 1) installieren, dann beide Bootstrap-Skripte laufen lassen, dann neues Terminal öffnen, dann `nvim` starten (lädt beim ersten Start automatisch alle Lua-Plugins via `lazy.nvim` – Internetverbindung nötig). |
| 16 | - **Neovim immer aus einer "Developer PowerShell for VS" starten** (Startmenü-Eintrag, den Visual Studio/die Build Tools mitbringen), nicht aus normalem Windows Terminal/PowerShell. `cl.exe` (MSVC) braucht die `INCLUDE`/`LIB`-Umgebungsvariablen aus `vcvarsall.bat`, die nur in dieser Developer-Shell gesetzt sind – siehe Abschnitt 4. | 16 | - **Neovim immer aus einer "Developer PowerShell for VS" starten** (Startmenü-Eintrag, den Visual Studio/die Build Tools mitbringen), nicht aus normalem Windows Terminal/PowerShell. `cl.exe` (MSVC) braucht die `INCLUDE`/`LIB`-Umgebungsvariablen aus `vcvarsall.bat`, die nur in dieser Developer-Shell gesetzt sind – siehe Abschnitt 4. |
| 17 | 17 | ||
| 18 | ## 1. Grundwerkzeuge installieren | 18 | ## 1. Grundwerkzeuge installieren |
| @@ -44,10 +44,10 @@ Nach Änderungen im Repo `install-win.ps1` erneut ausführen, um die Kopien zu a | |||
| 44 | 44 | ||
| 45 | ## 3. Externe Abhängigkeiten | 45 | ## 3. Externe Abhängigkeiten |
| 46 | 46 | ||
| 47 | `bootstrap/neovim.sh` bricht unter Windows sofort ab (`Nicht unterstütztes Betriebssystem`). Stattdessen `bootstrap/neovim-win.ps1` ausführen (reines PowerShell, kein Git Bash/WSL nötig): | 47 | `bootstrap/neovim.sh` bricht unter Windows sofort ab (`Nicht unterstütztes Betriebssystem`). Stattdessen `bootstrap-win/neovim.ps1` ausführen (reines PowerShell, kein Git Bash/WSL nötig): |
| 48 | 48 | ||
| 49 | ```powershell | 49 | ```powershell |
| 50 | .\bootstrap\neovim-win.ps1 | 50 | .\bootstrap-win\neovim.ps1 |
| 51 | ``` | 51 | ``` |
| 52 | 52 | ||
| 53 | Installiert per `winget`/`npm`: Git, Node, Formatter (jq, prettier, ruff, shfmt, stylua, yamlfmt, gawk, xmllint), Tools (ripgrep, fd, tree-sitter-cli, make) und LSP-Server (basedpyright, bash-language-server, clangd, shellcheck, vscode-langservers-extracted, lua-language-server, prisma, vtsls). Einzelne Pakete, die fehlschlagen, werden als Warnung gemeldet statt das Skript abzubrechen – Details siehe Kopfkommentar im Skript (einige winget-IDs, v. a. GnuWin32.Gawk/Libxml2, google.yamlfmt, mvdan.shfmt, astral-sh.ruff, sind ungeprüft). | 53 | Installiert per `winget`/`npm`: Git, Node, Formatter (jq, prettier, ruff, shfmt, stylua, yamlfmt, gawk, xmllint), Tools (ripgrep, fd, tree-sitter-cli, make) und LSP-Server (basedpyright, bash-language-server, clangd, shellcheck, vscode-langservers-extracted, lua-language-server, prisma, vtsls). Einzelne Pakete, die fehlschlagen, werden als Warnung gemeldet statt das Skript abzubrechen – Details siehe Kopfkommentar im Skript (einige winget-IDs, v. a. GnuWin32.Gawk/Libxml2, google.yamlfmt, mvdan.shfmt, astral-sh.ruff, sind ungeprüft). |
| @@ -63,7 +63,7 @@ $userPath = [Environment]::GetEnvironmentVariable("PATH", "User") | |||
| 63 | ## 4. Bekannte Stolpersteine | 63 | ## 4. Bekannte Stolpersteine |
| 64 | 64 | ||
| 65 | - **C-Compiler für `nvim-treesitter` (MSVC)**: `cl.exe` findet `nvim-treesitter` automatisch, aber nur wenn `INCLUDE`/`LIB` gesetzt sind – das passiert ausschließlich in einer "Developer PowerShell for VS" bzw. "x64 Native Tools Command Prompt", nicht in einer normalen PowerShell/Windows Terminal-Sitzung. Ohne das schlägt die Parser-Kompilierung mit einer Meldung wie "cannot find `<header>`.h" fehl, obwohl `cl.exe` selbst gefunden wird. Neovim also immer aus dieser Developer-Shell heraus starten. | 65 | - **C-Compiler für `nvim-treesitter` (MSVC)**: `cl.exe` findet `nvim-treesitter` automatisch, aber nur wenn `INCLUDE`/`LIB` gesetzt sind – das passiert ausschließlich in einer "Developer PowerShell for VS" bzw. "x64 Native Tools Command Prompt", nicht in einer normalen PowerShell/Windows Terminal-Sitzung. Ohne das schlägt die Parser-Kompilierung mit einer Meldung wie "cannot find `<header>`.h" fehl, obwohl `cl.exe` selbst gefunden wird. Neovim also immer aus dieser Developer-Shell heraus starten. |
| 66 | - **Rechtschreibprüfung (Deutsch)**: `bootstrap/neovim-dict-win.ps1` ausführen – lädt `de.utf-8.spl`/`.sug` nach `%LOCALAPPDATA%\nvim-data\site\spell` (nativer Windows-Datenpfad von Neovim). | 66 | - **Rechtschreibprüfung (Deutsch)**: `bootstrap-win/neovim-dict.ps1` ausführen – lädt `de.utf-8.spl`/`.sug` nach `%LOCALAPPDATA%\nvim-data\site\spell` (nativer Windows-Datenpfad von Neovim). |
| 67 | - **`scripts/sonarqube.sh`** (`:SonarIssues`): reines POSIX-Shellskript, kein Windows-Pendant vorhanden. Läuft nur, wenn ein `sh` im PATH liegt (z. B. `sh.exe` aus Git for Windows im PATH verfügbar machen); ansonsten `:SonarIssues` auf Windows nicht nutzen. | 67 | - **`scripts/sonarqube.sh`** (`:SonarIssues`): reines POSIX-Shellskript, kein Windows-Pendant vorhanden. Läuft nur, wenn ein `sh` im PATH liegt (z. B. `sh.exe` aus Git for Windows im PATH verfügbar machen); ansonsten `:SonarIssues` auf Windows nicht nutzen. |
| 68 | - **Clipboard** (`unnamedplus`): funktioniert nativ unter Windows-Neovim ohne Zusatztool – anders als unter WSL, wo `win32yank` nötig wäre. | 68 | - **Clipboard** (`unnamedplus`): funktioniert nativ unter Windows-Neovim ohne Zusatztool – anders als unter WSL, wo `win32yank` nötig wäre. |
| 69 | - **`opt.guifont`**: wirkt nur bei GUI-Frontends wie Neovide. Im Windows Terminal muss die Schriftart dort separat eingestellt werden. | 69 | - **`opt.guifont`**: wirkt nur bei GUI-Frontends wie Neovide. Im Windows Terminal muss die Schriftart dort separat eingestellt werden. |
