Next: Using the Shell, Previous: The IDLWAVE Shell, Up: The IDLWAVE Shell

### 5.1 Starting the Shell

The IDLWAVE shell can be started with the command `M-x idlwave-shell`. In `idlwave-mode` the function is bound to `C-c C-s`. It creates a buffer `*idl*` which is used to interact with the shell. If the shell is already running, `C-c C-s` will simply switch to the shell buffer. The command `C-c C-l` (`idlwave-shell-recenter-shell-window`) displays the shell window without selecting it. The shell can also be started automatically when another command tries to send a command to it. To enable auto start, set the variable `idlwave-shell-automatic-start` to `t`.

In order to create a separate frame for the IDLWAVE shell buffer, call `idlwave-shell` with a prefix argument: `C-u C-c C-s` or `C-u C-c C-l`. If you always want a dedicated frame for the shell window, configure the variable `idlwave-shell-use-dedicated-frame`.

To launch a quick IDLWAVE shell directly from a shell prompt without an IDLWAVE buffer (e.g., as a replacement for running inside an xterm), define a system alias with the following content:

         emacs -geometry 80x32 -eval "(idlwave-shell 'quick)"

Replace the ‘`-geometry 80x32`’ option with ‘`-nw`’ if you prefer the Emacs process to run directly inside the terminal window.

To use IDLWAVE with ENVI or other custom packages which change the ‘`IDL>` ’ prompt, you must change the `idlwave-shell-prompt-pattern`, which defaults to ‘`"^ ?IDL> "`’. Normally, you can just replace the ‘`IDL`’ in this expression with the prompt you see. A suitable pattern which matches the prompt for both ENVI and IDL simultaneously is ‘`"^ ?\\(ENVI\\|IDL\\)> "`’.

— User Option: idlwave-shell-explicit-file-name (`idl`)

> This is the command to run IDL.

— User Option: idlwave-shell-command-line-options

> A list of command line options for calling the IDL program.

— User Option: idlwave-shell-prompt-pattern

> Regexp to match IDL prompt at beginning of a line.

— User Option: idlwave-shell-process-name

> Name to be associated with the IDL process.

— User Option: idlwave-shell-automatic-start (`nil`)

> Non-`nil` means attempt to invoke idlwave-shell if not already running.

— User Option: idlwave-shell-initial-commands

> Initial commands, separated by newlines, to send to IDL.

— User Option: idlwave-shell-save-command-history (`t`)

> Non-`nil` means preserve command history between sessions.

— User Option: idlwave-shell-command-history-file (`~/.idlwave/.idlwhist`)

> The file in which the command history of the idlwave shell is saved. Unless it's an absolute path, it goes in `idlwave-config-directory`.

— User Option: idlwave-shell-use-dedicated-frame (`nil`)

> Non-`nil` means IDLWAVE should use a special frame to display the shell buffer.

— User Option: idlwave-shell-use-dedicated-window (`nil`)

> Non-`nil` means use a dedicated window for the shell, taking care not it replace it with other buffers.

— User Option: idlwave-shell-frame-parameters

> The frame parameters for a dedicated idlwave-shell frame.

— User Option: idlwave-shell-raise-frame (`t`)

> Non-`nil` means `idlwave-shell' raises the frame showing the shell window.

— User Option: idlwave-shell-temp-pro-prefix

> The prefix for temporary IDL files used when compiling regions.

— User Option: idlwave-shell-mode-hook

> Hook for customizing `idlwave-shell-mode`.