ADR-0002: Editor Integration via Reline
Date: 2026-01-29 Status: Accepted
Context
Users want the ability to open their $EDITOR from the prompt to compose
long or complex messages. The proposed approach was to implement CTRL+x CTRL+e
keybinding (matching Bash/Zsh behavior).
Research into Ruby’s Reline library revealed that this functionality already exists for vi mode users.
Decision
Do not implement custom editor integration. Document the existing Reline vi mode functionality instead.
How it works today (vi mode):
- Configure vi mode in
~/.inputrc:set editing-mode vi - At the elelem prompt, press
ESCto enter command mode - Press
vto open$EDITORwith current input - Edit, save, quit
- Text returns to prompt
Reline’s vi_histedit function handles:
- Creating temp file with current input
- Opening
$EDITOR - Reading result back into the prompt
- Cleanup
Consequences
Positive:
- Zero application code required
- Leverages existing, well-tested functionality
- Consistent with standard vi behavior
- Works out of the box for vi mode users
- Respects user’s
~/.inputrcconfiguration
Negative:
- Emacs mode users don’t get
CTRL+x CTRL+e(no built-in equivalent) - Requires users to know vi mode is available
- Documentation is the only deliverable
References
- Reline source:
line_editor.rb-vi_histeditmethod - inputrc location priority:
$INPUTRC→~/.inputrc→$XDG_CONFIG_HOME/readline/inputrc