feat: ship nano + micro (non-modal editors) alongside nvim
Lint workflows / actionlint (push) Successful in 13s
Lint workflows / actionlint (push) Successful in 13s
The image shipped only nvim (EDITOR=nvim), a modal vi-style editor. Not everyone is comfortable with vi keybindings, so add both a classic and a modern non-modal option: - nano (apt): ~2.8 MB installed; deps (libc6, libncursesw6, libtinfo6) already present via nvim/less/htop/tmux, so no extra packages pulled in. - micro: ~12 MB single static Go binary from GitHub releases (same pattern as bat/eza/zoxide). Desktop-style keys (Ctrl+S/Ctrl+Q), mouse, syntax highlighting. ARG MICRO_VERSION pins; defaults to latest. Combined ~15 MB (<0.5% of the ~3.2 GB image). EDITOR stays nvim; both new editors are opt-in (export EDITOR=micro | nano). Uses the canonical micro-editor/micro URL because the old zyedidia/micro org rename makes /releases/latest redirect to another /latest, defeating the tag-parsing latest-resolution idiom. Base-image change, so it lands on the next base-<hash> rebuild. Updates README tool table + EDITOR note, CHANGELOG (Unreleased/Added), and smoke-test.sh (nano + micro presence checks).
This commit is contained in:
@@ -13,6 +13,33 @@ Pre-v1.0.0 tags followed the pi npm version (`v{pi_version}[letter]`).
|
||||
|
||||
## Unreleased
|
||||
|
||||
### Added
|
||||
|
||||
- **Two non-modal terminal editors alongside `nvim`: `nano` and `micro`.**
|
||||
The image previously shipped only `nvim` (with `EDITOR=nvim`), a modal
|
||||
vi-style editor. Not everyone is comfortable with vi keybindings, so both
|
||||
a classic and a modern non-modal option now ship:
|
||||
- **`nano`** (apt) — ~2.8 MB installed. Its dependencies (`libc6`,
|
||||
`libncursesw6`, `libtinfo6`) are already present via `nvim`/`less`/`htop`/
|
||||
`tmux`, so it pulls in **no extra packages**. On-screen shortcut hints
|
||||
(`^O` write, `^X` exit) make it the lowest-friction fallback.
|
||||
- **`micro`** — ~12 MB, a single static Go binary installed from GitHub
|
||||
releases (same pattern as `bat`/`eza`/`zoxide`). Desktop-style keybindings
|
||||
(`Ctrl+S` save, `Ctrl+Q` quit, `Ctrl+C/V/X`, `Ctrl+Z` undo), mouse
|
||||
support, and syntax highlighting out of the box. Pin with
|
||||
`--build-arg MICRO_VERSION=vX.Y.Z`; defaults to `latest`.
|
||||
|
||||
Combined footprint is ~15 MB (<0.5% of the ~3.2 GB image). **`EDITOR`
|
||||
stays `nvim`** — the new editors are opt-in via `export EDITOR=micro`
|
||||
(or `nano`) and/or `git config --global core.editor micro`.
|
||||
|
||||
Note: micro's upstream repo moved `zyedidia/micro` → `micro-editor/micro`;
|
||||
the Dockerfile uses the canonical URL because the old org's
|
||||
`/releases/latest` redirect lands on another `/latest` URL (the org
|
||||
rename), which would defeat the tag-parsing `latest`-resolution idiom.
|
||||
These are base-image additions, so they only land once the `base-<hash>`
|
||||
rebuilds (this file changed, so the next build picks them up).
|
||||
|
||||
### Added (CI)
|
||||
|
||||
- **Workflow lint (`.gitea/workflows/lint.yml`) running on every push and PR.**
|
||||
|
||||
Reference in New Issue
Block a user