A small terminal text editor written in Go, inspired by vim/kilo. Built for daily use from the shell.
go build -o jim ./cmdWorks on Linux and macOS.
jim # empty buffer [No Name]
jim path/to/file # open a file| Key | Action |
|---|---|
| Arrows | Move cursor |
| Typing | Insert text |
| Enter | New line |
| Tab | Insert tab |
| Backspace | Delete before cursor |
| Delete | Delete at cursor |
| Ctrl+S | Save (requires filename from CLI) |
| Ctrl+N | New empty buffer |
| Ctrl+T | Cycle status-bar animation |
| Ctrl+Q / Ctrl+D | Quit (press twice if unsaved) |
- Left:
[+] filenamewhen modified, else padded filename - Right:
Ln N— file line (1-based, by\n), not wrap row - Far right: animation glyph
See specs/spec-ai-v3.md for MVP decisions and docs/spec-editor-viewport.md for viewport contracts.
go test ./...Text is stored in a linked list of gap buffers (1 KiB chunks). Rendering uses a lazy wrap-line cache that only scans far enough to paint the visible viewport — it does not flatten the whole file each keystroke.