Using the Shell
===============
The IDLWAVE shell works in the same fashion as other shell modes in
Emacs. It provides command history, command line editing and job
control. The <UP> and <DOWN> arrows cycle through the input history
just like in an X terminal(1). Here is a list of commonly used
commands.
<UP> Cycle backwards in input history
<DOWN> Cycle forwards in input history
`M-p' Cycle backwards in input history _matching input_
`M-n' Cycle forwards in input history _matching input_
`M-r' Previous input matching a regexp
`M-s' Next input that matches a regexp
`return' Send input or copy line to current prompt
`C-c C-a' Beginning of line; skip prompt
`C-c C-u' Kill input to beginning of line
`C-c C-w' Kill word before cursor
`C-c C-c' Send ^C
`C-c C-z' Send ^Z
`C-c C-\' Send ^\
`C-c C-o' Delete last batch of process output
`C-c C-r' Show last batch of process output
`C-c C-l' List input history
In addition to these standard `comint' commands,
`idlwave-shell-mode' provides many of the commands which simplify
writing IDL code, including abbreviations, online help, and completion.
See Note:Routine Info and Note:Online Help and Note:Completion
for more information on these commands.
`<TAB>' Completion of file names, routine names and keywords
(`idlwave-shell-complete')
`M-<TAB>' Same as <TAB>
`C-c ?' Routine Info display (`idlwave-routine-info')
`M-?' IDL online help on routine
(`idlwave-routine-info-from-idlhelp')
`C-c C-i' Update routine info from buffers and shell
(`idlwave-update-routine-info')
`C-c C-v' Find the source file of a routine (`idlwave-find-module')
`C-c =' Compile a library routine (`idlwave-resolve')
- User Option: idlwave-shell-arrows-do-history (`t')
Non-`nil' means <UP> and <DOWN> arrows move through command
history like xterm.
- User Option: idlwave-shell-file-name-chars
The characters allowed in file names, as a string. Used for file
name completion.
- User Option: idlwave-shell-graphics-window-size
Size of IDL graphics windows popped up by special IDLWAVE command.
IDLWAVE works in line input mode: You compose a full command line,
using all the power Emacs gives you to do this. When you press <RET>,
the whole line is sent to IDL. Sometimes it is necessary to send single
characters (without a newline), for example when an IDL program is
waiting for single character input with the `GET_KBRD' function. You
can send a single character to IDL with the command `C-c C-x'
(`idlwave-shell-send-char'). When you press `C-c C-y'
(`idlwave-shell-char-mode-loop'), IDLWAVE runs a blocking loop which
accepts characters and immediately sends them to IDL. The loop can be
exited with `C-g'. It terminates also automatically when the current
IDL command is finished. Check the documentation of the two variables
described below for a way to make IDL programs trigger automatic
switches of the input mode.
- User Option: idlwave-shell-use-input-mode-magic (`nil')
Non-nil means, IDLWAVE should check for input mode spells in
output.
- User Option: idlwave-shell-input-mode-spells
The three regular expressions which match the magic spells for
input modes.
---------- Footnotes ----------
(1) This is different from normal Emacs/Comint behavior, but more
like an xterm. If you prefer the default comint functionality, check
the variable `idlwave-shell-arrows-do-history'.