DCL implements command line editing and recall, so that users can more easily correct typing errors and reuse previous command lines.

Recall buffer: access to recently issued commands

$ RECALL string   Bring up last command beginning with string.
$ RECALL/ALL      Displays all commands and their numbers.
$ RECALL number   Use a number found  in RECALL/ALL.

Command line editing (if it isn’t on, do: $ SET TERM/LINE):

$ {up-arrow}      Previous command in recall buffer.
$ {down-arrow}    Next command in recall buffer.
$ {Ctrl A}        Toggle insert/overstrike editing.
$ {Ctrl D}        Move one character left.
$ {Ctrl E}        Move to the end of the line.
$ {Ctrl F}        Move one character right.
$ {Ctrl H}        Move to the beginning of the line.
$ {Ctrl J}        Delete word left of cursor.
$ {Ctrl R}        Rewrite the command line.
$ {Ctrl U}        Delete line left of cursor.
$ {Ctrl X}        Cancel the current command line.

Miscellaneous:

$ {Ctrl 3}        ASCII code for {Esc}.
$ {Ctrl I}        ASCII code for {Tab}.
$ {Ctrl Z}        Tell DCL "end of file". Used in some programs
to indicate more general sorts of "end" commands.

Of these, only {Ctrl I} will insert a character into the command line, rather than just move the cursor around. No new characters may be inserted before a tab ({Ctrl I}) in a command line, but existing characters may be changed in overstrike mode, or deleted. This behavior is documented in the “I/O User’s Guide” and has existed since VMS 4.0.