rlwrapand the GNU Readline library. (Not to be confused with Arc's readline I/O operation.)
Readline provides many editing operations. If you're not an Emacs user, you'll probably want to use the arrow keys to move through your current line and history, Home and End to move to the beginning and end of the line, and Delete or Backspace to delete characters. Another useful feature is Control-underscore will undo an edit. If you enter a closing parenthesis, Readline will flash the corresponding opening parenthesis, which is helpful when entering Arc code. Control-R followed by text will search your history for a line containing that text. Readline supports the standard Emacs keybindings. For instance, Control-B and Control-F to move backwards and forward, Meta-B and Meta-F to move by words, Control-K kills (erases) to the end of the line, Control-Y yanks killed text back into the line, and so on. See the documentation for the full documentation.
Installing rlwrapBut how do you use readline with Arc? There has been discussion at arclanguage.org, but there are complications. Mzscheme added support for readline in version 360, but Arc inconveniently runs on version 352. Backporting readline to 352 doesn't work cleanly.
The easiest way is to install the
rlwrap command, which wraps an arbitrary command in readline. To install it on Linux, run
sudo yum install rlwrap or
sudo apt-get install rlwrap as appropriate.
For Windows, rlwrap is part of cygwin, although you need to explicitly select in the installer under "Select Packages to Install"; it's under "Utils -> rlwrap".
Once installed, add
rlwrap in front of your
mzscheme command. For instance:
rlwrap mzscheme -m -f as.scmMore ways of running rlwrap with Arc are described in the arclanguage.org discussion.
Once you have
rlwrap installed, you should find entering Arc code to be much easier.