This document summarizes the changes in k21 (fork of joe2.1), organized by function.
- Renamed from Joe to K: The editor is now called "k" instead of "joe"
- Binary output is
k(notjoe,jmacs,jstar) - Configuration file is
krc(notjoerc) - Crash recovery file renamed from
DEADJOEtoDEADK - Error messages reference "K" instead of "JOE"
- Automatic context saving: On exit, saves current file and line number to
~/.ktx - Session resume: When launched without arguments, automatically re-opens the last edited file at the saved line position
- Displays "Resuming at line ." message on restore
- Advisory file locking:
- Uses
flock()to lock files when opened for editing - Prevents concurrent editing of the same file
- New error message: "Error, file locked" when file is already locked
- Lock released on buffer close
- Uses
- Timestamped backups:
- Backup filenames include date/time stamp:
file~DD-Mon-YY_HH:MM:SS~username - Backups organized by user in
backpath: creates per-user subdirectory
- Backup filenames include date/time stamp:
- Improved error messages show actual backup filename on failure
pgfwd: Page forward (J-compatible mode) — goes to bottom of screen, then pages downpgrev: Page reverse (J-compatible mode) — goes to top of screen, then pages upplaylast: Execute the most recently recorded/executed macro without specifying number
- Automatic macro closing: If you try to execute a macro that's still recording, it auto-stops recording first
- Last macro tracking: Remembers which macro was last recorded/played for
playlast
- Circular help navigation: Help screens now cycle — pressing next on last help returns to first, pressing prev on first goes to last
- Help toggle behavior: If help is off, next/prev help turns it on; cycling past end turns it off
- Disabled terminal exit sequence (
tetermcap) on exit — prevents screen clearing
- Cursor remains at start of yanked text (original joe moved to end)
- Block marks are preserved after filter operations (original joe cleared them)
- Suppressed "not changed so no update needed" message on exit for unchanged files
- Default umask set to 002 for better group collaboration
-markingenabled by default (live block highlighting)-lightoffenabled by default (highlighting clears after block operations)-forceenabled by default (force final newline)-backpathset to/var/tmp/kback/-nonoticeenabled (disables copyright notice)- Custom keybindings using ^P, ^L, ^^ as prefix keys
- Custom help screens adapted for K bindings
krc— K configuration filekeys.tpt— Keyboard template/reference showing key bindings