j and k move the caret one line, delegated to sublime's own `move` command so they behave exactly like the arrow keys. They dispatch through the existing ACTIONS registry, so the keymap, the status-bar hints and the ? popup all stay in sync through the single KEY_GROUPS table. Unlike the other letter keys, j / k keep no command_mode context: the view is read-only, so leaving them live while Vintage is in command mode can only ever move the caret. That asymmetry was previously documented only in a comment, which was wrong (it claimed j / k were the only unguarded bindings, but escape has always carried its own context instead). It is now pinned by test_command_mode_guard_is_deliberate, so normalising the keymap fails the suite with the reason attached. Also tidies two long lines in commands.py. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1.3 KiB
1.3 KiB
vDiff
Review what a coding agent changed without leaving Sublime Text: the whole file, deletions in red, insertions in green, in the file's own syntax highlighting. Stage, unstage or discard the file, or jump to the real file at the caret's line.
Install: symlink this directory into Packages as vDiff (Python 3.8 plugin host, no dependencies).
Command Palette:
- vDiff: Changed Files – uncommitted changes (staged, unstaged, untracked). Arrowing through the list previews each file; Enter keeps it, Esc goes back to what was shown.
- vDiff: Recent Commits – last N commits, then the files of the chosen commit. A key binding to
vdiff_commitswith{"sha": "HEAD"}skips the list and reviews the last commit directly.
Keys inside the review view:
| key | action |
|---|---|
f / c |
changed files / recent commits panel |
s / u / d |
stage / unstage / discard the file (uncommitted mode) |
o or Enter |
open the real file at this line |
] / [ |
next / previous change |
n / p |
next / previous file of the current list |
j / k |
move down / up one line (vim keys) |
r |
refresh |
? |
show this key list in a popup |
| Esc | close the view |
The header links do the same with the mouse. Settings: vDiff.sublime-settings.