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 variableTERM
is not set or insufficient then terminate with non-zero exit status.TERMINFO
: The absolute file path of aterminfo
database. 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
^V
is 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