asymptote: Interactive mode
10 Interactive mode
*******************
Interactive mode is entered by executing the command 'asy' with no file
arguments. When the '-multiline' option is disabled (the default), each
line must be a complete 'Asymptote' statement (unless explicitly
continued by a final backslash character '\'); it is not necessary to
terminate input lines with a semicolon. If one assigns
'settings.multiline=true', interactive code can be entered over multiple
lines; in this mode, the automatic termination of interactive input
lines by a semicolon is inhibited. Multiline mode is useful for cutting
and pasting 'Asymptote' code directly into the interactive input buffer.
Interactive mode can be conveniently used as a calculator:
expressions entered at the interactive prompt (for which a corresponding
'write' function exists) are automatically evaluated and written to
'stdout'. If the expression is non-writable, its type signature will be
printed out instead. In either case, the expression can be referred to
using the symbol '%' in the next line input at the prompt. For example:
> 2+3
5
> %*4
20
> 1/%
0.05
> sin(%)
0.0499791692706783
> currentpicture
<picture currentpicture>
> %.size(200,0)
>
The '%' symbol, when used as a variable, is shorthand for the
identifier 'operator answer', which is set by the prompt after each
written expression evaluation.
The following special commands are supported only in interactive mode
and must be entered immediately after the prompt:
'help'
view the manual;
'erase'
erase 'currentpicture';
'reset'
reset the 'Asymptote' environment to its initial state, except for
changes to the settings module (settings), the current
directory (cd), and breakpoints (Debugger);
'input FILE'
does an interactive reset, followed by the command 'include FILE'.
If the file name 'FILE' contains nonalphanumeric characters,
enclose it with quotation marks. A trailing semi-colon followed by
optional 'Asymptote' commands may be entered on the same line.
'quit'
exit interactive mode ('exit' is a synonym; the abbreviation 'q' is
also accepted unless there exists a top-level variable named 'q').
A history of the most recent 1000 (this number can be changed with
the 'historylines' configuration variable) previous commands will
be retained in the file '.asy/history' in the user's home directory
(unless the command-line option '-localhistory' was specified, in
which case the history will be stored in the file '.asy_history' in
the current directory).
Typing 'ctrl-C' interrupts the execution of 'Asymptote' code and
returns control to the interactive prompt.
Interactive mode is implemented with the GNU 'readline' library, with
command history and auto-completion. To customize the key bindings,
see: <http://cnswww.cns.cwru.edu/php/chet/readline/readline.html>
The file 'asymptote.py' in the 'Asymptote' system directory provides
an alternative way of entering 'Asymptote' commands interactively,
coupled with the full power of 'Python'. Copy this file to your 'Python
path' and then execute from within 'Python' the commands
from asymptote import *
g=asy()
g.size(200)
g.draw("unitcircle")
g.send("draw(unitsquare)")
g.fill("unitsquare, blue")
g.clip("unitcircle")
g.label("\"$O$\", (0,0), SW")