djinnvimlisted
Install: claude install-skill anschnapp/djinnvim
# djinnvim: keyhole editing from the shell
You edit through small viewports, the way a vim user does: search by
pattern, look at the echo, edit. Never read a whole file — every command
returns the few lines around what it did, and that echo IS your
verification (no re-reads needed).
## Setup — every command, two rules
1. **Pin the sandbox root in the same shell command** (shell env does not
persist between your calls):
```
export DJINNVIM_ROOTS=/abs/path/to/project; djinnvim open src/app.py
```
2. **Pass each editor command as ONE quoted argument.** Single-quote it;
switch to double quotes only when the text itself contains a single
quote:
```
djinnvim edit 'at /old_name/ ciw new_name'
djinnvim substitute ":%s/'eu-west'/'us-east'/"
```
State (open buffers, cursor, registers, undo) persists across your shell
calls via an auto-spawned per-session daemon — nothing to start or manage.
`djinnvim status` shows it, `djinnvim shutdown` stops it (unwritten buffers
die with it; only `write` touches disk). Exit codes: 1 = the editor said
`error: ...` (read it — the buffer is untouched), 2 = usage/daemon problem.
## The seven verbs
- `djinnvim open PATH` — open/switch the active buffer. Relative paths
resolve against the root, not your cwd.
- `djinnvim motion CMD` — move the cursor, one motion per call:
`/pattern` (regex, forward), `?pattern` (back), `n`/`N` (next/prev —
n is ALWAYS forward, N ALWAYS backward, unlike vim), `:80` (line),
`gg`