|
10 | 10 |
|
11 | 11 | Alle wesentlichen Änderungen an CodeBox werden hier dokumentiert. |
12 | 12 |
|
| 13 | +## [0.1.9] - 2026-09-11 |
| 14 | + |
| 15 | +### Zuschaltbarer Vim-Keybindings Modus |
| 16 | + |
| 17 | +- `core/vim_mode.py`: Neues Kernmodul mit vollständiger Vim-Zustandsmaschine (`VimEngine`, `VimMode`): |
| 18 | + - 4 Betriebsmodi: `NORMAL`, `INSERT`, `VISUAL` (zeichenweise Markierung) und `VISUAL_LINE` (zeilenweise Markierung). |
| 19 | + - Terminal-authentischer Blockcursor im Normal- und Visual-Modus via adaptiver Fontmetrik (`QFontMetrics.horizontalAdvance`). |
| 20 | + - Bewegungstasten: `h`, `j`, `k`, `l`, Wortsprünge `w`, `b`, `e`, Zeilenbegrenzungen `0`, `^`, `$`, Dokumentensprünge `gg`, `G`, `<N>G` sowie Halbseiten-Scrollen `Ctrl+D`, `Ctrl+U`. |
| 21 | + - Ziffernpuffer & Zähler-Multiplikation (`3w`, `5j`, `2dd`). |
| 22 | + - Umfassende Lösch- und Änderungsbefehle: `x`, `X`, `dd`, `dw`, `de`, `d$`/`D`, `d0`, `cw`, `cc`/`S`, `C`, `s`, `r<char>`. |
| 23 | + - Kopieren & Einfügen (Yank/Put): `yy`, `Y`, `yw`, `y$`, `p`, `P` mit nativer Unterscheidung zwischen zeilen- und zeichenbasiertem Einfügen sowie Synchronisation mit dem System-Clipboard. |
| 24 | + - Weitere Aktionen: Fallwechsel (`~`), Zeilen verbinden (`J`), Ein-/Ausrücken (`>>`, `<<`), Undo (`u`), Redo (`Ctrl+R`). |
| 25 | + - Bereichsoperationen im Visual- und Visual-Line-Modus (`d`, `x`, `y`, `c`, `>`, `<`, `~`, `u`, `U`). |
| 26 | +- `core/editor.py`: |
| 27 | + - `vim_engine` Instanz in `CodeEditor`. |
| 28 | + - Methoden `set_vim_mode_enabled(bool)` und `is_vim_mode_enabled() -> bool`. |
| 29 | + - Key-Event Routing im Editor fängt Tastenanschläge bei aktivem Vim-Modus modal ab. |
| 30 | +- `ui/main_window.py`: |
| 31 | + - Menü *Bearbeiten* -> *Vim-Modus* (`Ctrl+Alt+V`) mit checkbarem Zustand. |
| 32 | + - Statusleisten-Widget (`vim_label`) mit Anzeige von `-- NORMAL --`, `-- INSERT --`, `-- VISUAL --`, `-- VISUAL_LINE --` und aktuellem Befehlspuffer (z. B. ` [3d]`). |
| 33 | + - Propagierung des Vim-Zustands auf alle geöffneten Tabs beider Split-Ansichten. |
| 34 | + - Automatische Registrierung in der Schnellauswahl / Befehlspalette (`Ctrl+Shift+P`). |
| 35 | +- `config/__init__.py`: |
| 36 | + - `"vim_mode": False` in `DEFAULT_SETTINGS` aufgenommen. |
| 37 | +- `ui/settings_dialog.py`: |
| 38 | + - Checkbox zur globalen Aktivierung/Deaktivierung des Vim-Modus. |
| 39 | +- `ui/shortcuts_dialog.py`: |
| 40 | + - Neue Dokumentations-Kategorie *Vim-Modus* mit vollständiger Tabelle aller Tastenbelegungen sowie Ergänzung unter *Bearbeiten*. |
| 41 | +- `tests/test_vim_mode.py`: |
| 42 | + - 27 automatisierte Unit Tests für Zustände, Navigation, Operatoren, Visual Mode, Zwischenablage, Editor- und UI-Integration (Gesamt: 239 passed, 1 skipped). |
| 43 | + |
13 | 44 | ## [0.1.8] - 2026-09-11 |
14 | 45 |
|
15 | 46 | ### Git-Staging & Commit-Dialog |
|
0 commit comments