ied(1)ied(1)NAMEied - input editor and command history for interactive programs
SYNOPSIS
file] charmap] prompt] size] utility [arguments]...
DESCRIPTION
The utility command is intended to act as an interface between the user
and an interactive program such as or a shell, providing most of the
line editing and history functionality found in the Korn shell. inter‐
prets the utility name as the command to be executed, and passes argu‐
ments as the arguments to the utility. Subsequent input to utility
then has access to editing and history functions very similar to those
provided by
monitors the state of the pty it uses to run the command; whenever the
application it is running changes the state from the state of the tty
when started, becomes "transparent". This allows programs to do shell
escapes to screen-smart programs. In general, should not in any way
interfere with any action taken by any program for which it provides a
front end. This includes Korn shell itself: in this case would provide
history for any application that was run by and would provide its own
independent history. In a useful extreme case, can be used as a front
end to the login shell (which might be or In this case, all applica‐
tions that use normal line editing gain line editing and history, shar‐
ing a single history. The shell would continue to have its own inde‐
pendent history if it provides such a mechanism.
When is in its transparent mode, no history is saved. In particular
the mode of does not use normal line editing (rather, it simulates it)
and cannot provide history in this case. The and address line editing
of mailx also cannot be edited with
Options
Several options and command-line arguments control operation:
Debug mode. Print information about the operation of the pro‐
gram. It is best used to determine if a program
puts into transparent mode unexpectedly.
Keep the history in a file named
filename. If a file of that name already exists
and is a history file, the latter part of it (the
last size lines as specified by the option) is
used as the initial value of the history. If the
option is not used, the environment variable is
used to supply the name. If neither is present,
an unnamed temporary file is used, and no initial
value is provided.
Force interactive mode.
Normally simply the command to which it is asked
to be a front end when the standard input is not
a tty (this allows aliases to be used for com‐
mands used in shells without interfering with
their operation). This option forces to remain
as a front end, and all editing functions are in
place. This permits a utility that behaves dif‐
ferently in interactive and batch modes to be
driven from a pipe or file in interactive mode.
This is particularly useful in testing commands
that make this distinction.
charmap is a file of 256 or fewer lines. The line number
in the file is the ordinal of a character as seen
as input by and the character on the line is the
character generated as output (and also used as
editing characters). This allows remapping of
(ordinary) keys such as for a Dvorak keyboard.
Characters must start in column one of each line,
and be represented as 1-4 characters followed by
a space or the newline character for the next
line. Characters after the space are ignored as
comments. Single-character entries represent
themselves. Two-character entries where the
first character is a circumflex converts the sec‐
ond character to the corresponding control char‐
acter. Two-character sequences where the first
character is backslash use the C language conven‐
tions:
\n newline \s space
\\ escape \0 null
\r return \f form feed
\t tab \v vertical tab
\b backspace
Three- and four-character sequences must be or
giving the octal value for the character. If
charmap is less than 256 lines long, the remain‐
ing characters are mapped to themselves.
Many commands do not prompt when ready for input.
approximates a prompting mechanism for such com‐
mands. This is not always perfectly successful,
but for many commands it helps. In the worst
case, the prompt is interspersed with output in
the wrong location. prompt is a string as used
in the format argument to (see printf(3S)). The
only conversions that can be included are up to
one instance of which is converted to the sequen‐
tial number of the command, and any number of
occurrences of which is treated as a literal
character. Prompting is suppressed when is oper‐
ating in transparent mode.
This sets "non-raw" mode.
Normally uses its own editing capabilities when
reading simple text. This causes to use tty line
discipline most of the time. The disadvantage of
the default mode is that more context switches
and general processing are required. The advan‐
tage is that is more transparent. For example,
to specifically send an end-of-file in the non-
raw mode requires that the end-of-file character
(usually Ctrl-D) be followed by a carriage
return. Similarly the "literal next" function
(Ctrl-V) cannot escape the line-erase and line-
kill functions in non-raw mode.
This option specifies the size of the history buffer.
When is started with an existing history file,
approximately the last size lines are available
to the history mechanism (the number is not guar‐
anteed to be exactly size). Other lines in the
file are retained until such time as is started
on that history file and it exceeds approximately
4K bytes in size, at which time discards older
entries at the beginning of the file until it is
near 4 KB in size. Since this occurs only at
startup, history files can grow to be quite large
between restarts. Larger values of size make the
process image larger.
If is not specified, the value of the environment
variable is used. If neither is specified, a
default is used.
Set transparent mode.
This forces to permanently be in transparent mode
(as discussed above). It is primarily useful
with for some classes of automated processing.
In particular, it is useful for driving a command
if the command takes as input what would inter‐
pret as editing characters. Thus with the appro‐
priate combinations of and it is possible to
drive an editor such as or a screen-smart appli‐
cation from a batch file.
Should something go wrong with the signal, repeated 3 times, usually
aborts The exception is the case of a fully transparent application,
where must be killed from another window or terminal. This is really
relevant only when there is no way to direct the serviced process to
terminate itself.
The editing capabilities of are essentially those found in Only those
that differ from are described below. As in the style of editing is
determined from the environment variable or from if is not specified.
The value examined should end in or to specify an editor type. If it
does not, does no editing, and history is not accessible.
In mode:
Join lines. Considering the most recently edited line (which
is empty immediately after a line is sent to the
application) to be the "last line" of the his‐
tory, the current line being displayed from the
history is appended to the end of the last line,
and the position in the history is reset to be at
the last line which is then displayed. A space
is inserted between the old and new text on the
last line. The cursor is left on that space.
Because understanding of line continuation is
minimal, this is useful for editing long state‐
ments.
Not supported.
Not supported.
Sends nothing to the application, but inserts the line in the
history
(useful for adding comments to history file).
(File name expansion).
Not supported.
Macro expansion.
Not supported.
Note however that has a rarely-used function that
substitutes words from the previous line (this is
not the macro but rather an editor command). If
a preceding count is given, it uses the countth
word of the last line. This is much more useful
with
In mode:
(file name expansion)
Not supported.
Note that the command (and its synonym provide
the same functionality as the mode command.
Macro expansion.
Not supported.
Although supported, it may not always appear correctly on the
screen.
The command can be used to redraw the line. See
below for the discussion on prompting.
EXAMPLES
Add interactive editing to the command:
Execute on using comands taken from
Note that, without the use of would misbehave because its standard
input would not be a terminal device. In this case, the is not
required because puts itself in raw mode, but for an application that
does not, might be required.
The command line
searches the file for lines beginning with sending one copy to the ter‐
minal and a second to file just like the command line
The difference is that in the command line without writes directly to a
pipe, and thus buffers its output. If is very large and not many lines
match the pattern, output to the terminal is delayed. By using the
output of goes to a pty instead, which causes to output each line as it
is ready.
WARNINGS
Since cannot know everything about every application, it is possible
that it can become confused, with either the timing or the prompt being
out of phase with the application. Since the use of is never required,
it is the user's choice to determine whether the application is more
usable with or without In general, however, programs that do not con‐
fuse are usually also the most likely to benefit from its use.
tries to intuit the currently active prompt when it is not providing
one itself. However, this is not always successful. Even when it is
successful, the timing of and the serviced command may occasionally
confuse the output. The commands in both and modes redraw the edit
line in a consistent fashion that can be used to create the next com‐
mand.
AUTHOR
was developed by HP.
SEE ALSObc(1), bs(1), csh(1), ex(1), grep(1), ksh(1), vi(1), printf(3S).
ied(1)