eh(1)
NAME
eh - Edit Here - vi(1) the good parts version
SYNOPSIS
eh filename
DESCRIPTION
A minimalist version of vi(1). It is an example of the “Buffer Gap” method outlined in the The Craft Of Text Editing used by many Emacs style editors. (Yep I mixed vi and emacs in the same paragraph; I’m going to hell for that one.)
Create or read a text file to edit. Text files consists of lines of printable UTF-8 text, tabs, or newline characters. A physical line can be of arbitrary length and is delimited by either a newline or the end of file. Tab stops are every eight columns. The behaviour of non-printable characters may vary depending on the implementation of the Curses library, stty(1) settings, or terminal emulator.
COMMANDS
The commands are similar, but not the same as vi(1). Most commands can be prefixed by a repeat count, eg. 5w, 123G, 2dw (d2w), or 2d3w (d6w). Motion commands, optionally prefixed by a count, are those that move the cursor without modifying the buffer. Some edit commands can be followed by a motion.
h j k l Left, down, up, right cursor movement. H J K L Page top, page down, page up, page bottom. b w Word left, word right. | Goto column (count) of physical line. /ERE Find first occurrence of ERE pattern after the cursor. n Find next occurrence of ERE. G Goto line (count) number; 1G top of file, G bottom. Toggle text selection. d motion Delete text selection or region given by motion. y motion Yank (copy) text selection or region given by motion. P Paste last deleted or yanked text region before the cursor. i Insert text mode before the cursor, ESC or CTRL+C ends insert. u Toggle undo of last edit. x Delete character after the cursor, i.e., dl W Write buffer to file. Q Quit. CTRL+C Quit.
Any other key will redraw the screen.
ENVIRONMENT
TERM: The user’s terminal type. If the environmental variableTERMis not set or insufficient then terminate with non-zero exit status.TERMINFO: The absolute file path of aterminfodatabase. Seeterminfo(5).
EXIT STATUS
- 0 Success
- 1 Insufficient capabilities for
TERM. - 2 Read file error
SEE ALSO
ed(1), ex(1), vi(1)
NOTES
Has UTF-8 support.
- Loads UTF-8 files as-is and internally remains UTF-8 (not converted to
wchar_t). - UTF-8 input will likely require an intl. keyboard or enabling US Intl. dead-key keyboard support. See also Unicode Input.
- Loads UTF-8 files as-is and internally remains UTF-8 (not converted to
The display of long physical lines that are larger than the terminal screen is untested, so considered undefined.
CRLF newlines (DOS, Windows) and other non-spacing control characters are not visible. Consider converting newlines using SUS tools like
awk(1)orsed(1):$ sed -e’s/VM$//’ dos.txt > unix.txt $ sed -e’s/$/VM/’ unix.txt > dos.txt
^Vis the defaultstty(1)insert literal prefix key.
REFERENCES
Craig A. Finseth, “Craft Of Text Editing”, 1999 http://www.finseth.com/craft/
Single Unix Specification, Curses issue 7 https://pubs.opengroup.org/onlinepubs/9699909599/toc.pdf
Single Unix Specification, Base Specification 2018, vi(1) https://pubs.opengroup.org/onlinepubs/9699919799/utilities/vi.html
