-\1f
-File: xemacs.info, Node: Interactive Shell, Next: Shell Mode, Prev: Single Shell, Up: Shell
-
-Interactive Inferior Shell
---------------------------
-
- To run a subshell interactively with its typescript in an XEmacs
-buffer, use `M-x shell'. This creates (or reuses) a buffer named
-`*shell*' and runs a subshell with input coming from and output going
-to that buffer. That is to say, any "terminal output" from the subshell
-will go into the buffer, advancing point, and any "terminal input" for
-the subshell comes from text in the buffer. To give input to the
-subshell, go to the end of the buffer and type the input, terminated by
-<RET>.
-
- XEmacs does not wait for the subshell to do anything. You can switch
-windows or buffers and edit them while the shell is waiting, or while
-it is running a command. Output from the subshell waits until XEmacs
-has time to process it; this happens whenever XEmacs is waiting for
-keyboard input or for time to elapse.
-
- To get multiple subshells, change the name of buffer `*shell*' to
-something different by using `M-x rename-buffer'. The next use of `M-x
-shell' creates a new buffer `*shell*' with its own subshell. By
-renaming this buffer as well you can create a third one, and so on.
-All the subshells run independently and in parallel.
-
- The file name used to load the subshell is the value of the variable
-`explicit-shell-file-name', if that is non-`nil'. Otherwise, the
-environment variable `ESHELL' is used, or the environment variable
-`SHELL' if there is no `ESHELL'. If the file name specified is
-relative, the directories in the list `exec-path' are searched (*note
-Single Shell Commands: Single Shell.).
-
- As soon as the subshell is started, it is sent as input the contents
-of the file `~/.emacs_SHELLNAME', if that file exists, where SHELLNAME
-is the name of the file that the shell was loaded from. For example,
-if you use `csh', the file sent to it is `~/.emacs_csh'.
-
- `cd', `pushd', and `popd' commands given to the inferior shell are
-watched by XEmacs so it can keep the `*shell*' buffer's default
-directory the same as the shell's working directory. These commands
-are recognized syntactically by examining lines of input that are sent.
-If you use aliases for these commands, you can tell XEmacs to
-recognize them also. For example, if the value of the variable
-`shell-pushd-regexp' matches the beginning of a shell command line,
-that line is regarded as a `pushd' command. Change this variable when
-you add aliases for `pushd'. Likewise, `shell-popd-regexp' and
-`shell-cd-regexp' are used to recognize commands with the meaning of
-`popd' and `cd'.
-
- `M-x shell-resync-dirs' queries the shell and resynchronizes XEmacs'
-idea of what the current directory stack is. `M-x
-shell-dirtrack-toggle' turns directory tracking on and off.
-
- XEmacs keeps a history of the most recent commands you have typed in
-the `*shell*' buffer. If you are at the beginning of a shell command
-line and type <M-p>, the previous shell input is inserted into the
-buffer before point. Immediately typing <M-p> again deletes that input
-and inserts the one before it. By repeating <M-p> you can move
-backward through your commands until you find one you want to repeat.
-You may then edit the command before typing <RET> if you wish. <M-n>
-moves forward through the command history, in case you moved backward
-past the one you wanted while using <M-p>. If you type the first few
-characters of a previous command and then type <M-p>, the most recent
-shell input starting with those characters is inserted. This can be
-very convenient when you are repeating a sequence of shell commands.
-The variable `input-ring-size' controls how many commands are saved in
-your input history. The default is 30.
-
-\1f
-File: xemacs.info, Node: Shell Mode, Next: Terminal emulator, Prev: Interactive Shell, Up: Shell
-
-Shell Mode
-----------
-
- The shell buffer uses Shell mode, which defines several special keys
-attached to the `C-c' prefix. They are chosen to resemble the usual
-editing and job control characters present in shells that are not under
-XEmacs, except that you must type `C-c' first. Here is a list of the
-special key bindings of Shell mode:
-
-`<RET>'
- At end of buffer send line as input; otherwise, copy current line
- to end of buffer and send it (`send-shell-input'). When a line is
- copied, any text at the beginning of the line that matches the
- variable `shell-prompt-pattern' is left out; this variable's value
- should be a regexp string that matches the prompts that you use in
- your subshell.
-
-`C-c C-d'
- Send end-of-file as input, probably causing the shell or its
- current subjob to finish (`shell-send-eof').
-
-`C-d'
- If point is not at the end of the buffer, delete the next
- character just like most other modes. If point is at the end of
- the buffer, send end-of-file as input, instead of generating an
- error as in other modes (`comint-delchar-or-maybe-eof').
-
-`C-c C-u'
- Kill all text that has yet to be sent as input
- (`kill-shell-input').
-
-`C-c C-w'
- Kill a word before point (`backward-kill-word').
-
-`C-c C-c'
- Interrupt the shell or its current subjob if any
- (`interrupt-shell-subjob').
-
-`C-c C-z'
- Stop the shell or its current subjob if any (`stop-shell-subjob').
-
-`C-c C-\'
- Send quit signal to the shell or its current subjob if any
- (`quit-shell-subjob').
-
-`C-c C-o'
- Delete last batch of output from shell (`kill-output-from-shell').
-
-`C-c C-r'
- Scroll top of last batch of output to top of window
- (`show-output-from-shell').
-
-`C-c C-y'
- Copy the previous bunch of shell input and insert it into the
- buffer before point (`copy-last-shell-input'). No final newline
- is inserted, and the input copied is not resubmitted until you type
- <RET>.
-
-`M-p'
- Move backward through the input history. Search for a matching
- command if you have typed the beginning of a command
- (`comint-previous-input').
-
-`M-n'
- Move forward through the input history. Useful when you are using
- <M-p> quickly and go past the desired command
- (`comint-next-input').
-
-`<TAB>'
- Complete the file name preceding point (`comint-dynamic-complete').
-
-\1f
-File: xemacs.info, Node: Terminal emulator, Next: Term Mode, Prev: Shell Mode, Up: Shell
-
-Interactive Inferior Shell with Terminal Emulator
--------------------------------------------------
-
- To run a subshell in a terminal emulator, putting its typescript in
-an XEmacs buffer, use `M-x term'. This creates (or reuses) a buffer
-named `*term*' and runs a subshell with input coming from your keyboard
-and output going to that buffer.
-
- All the normal keys that you type are sent without any interpretation
-by XEmacs directly to the subshell, as "terminal input." Any "echo" of
-your input is the responsibility of the subshell. (The exception is
-the terminal escape character, which by default is `C-c'. *note Term
-Mode::.) Any "terminal output" from the subshell goes into the buffer,
-advancing point.
-
- Some programs (such as XEmacs itself) need to control the appearance
-on the terminal screen in detail. They do this by sending special
-control codes. The exact control codes needed vary from terminal to
-terminal, but nowadays most terminals and terminal emulators (including
-xterm) understand the so-called "ANSI escape sequences" (first
-popularized by the Digital's VT100 family of terminal). The term mode
-also understands these escape sequences, and for each control code does
-the appropriate thing to change the buffer so that the appearance of
-the window will match what it would be on a real terminal. Thus you
-can actually run XEmacs inside an XEmacs Term window!
-
- XEmacs does not wait for the subshell to do anything. You can switch
-windows or buffers and edit them while the shell is waiting, or while
-it is running a command. Output from the subshell waits until XEmacs
-has time to process it; this happens whenever XEmacs is waiting for
-keyboard input or for time to elapse.
-
- To make multiple terminal emulators, rename the buffer `*term*' to
-something different using `M-x rename-uniquely', just as with Shell
-mode.
-
- The file name used to load the subshell is determined the same way
-as for Shell mode.
-
- Unlike Shell mode, Term mode does not track the current directory by
-examining your input. Instead, if you use a programmable shell, you
-can have it tell Term what the current directory is. This is done
-automatically by bash for version 1.15 and later.
-
-\1f
-File: xemacs.info, Node: Term Mode, Next: Paging in Term, Prev: Terminal emulator, Up: Shell
-
-Term Mode
----------
-
- Term uses Term mode, which has two input modes: In line mode, Term
-basically acts like Shell mode. *Note Shell Mode::. In Char mode,
-each character is sent directly to the inferior subshell, except for
-the Term escape character, normally `C-c'.
-
- To switch between line and char mode, use these commands:
- findex term-char-mode
-
-`C-c C-k'
- Switch to line mode. Do nothing if already in line mode.
-
-`C-c C-j'
- Switch to char mode. Do nothing if already in char mode.
-
- The following commands are only available in Char mode:
-`C-c C-c'
- Send a literal <C-c> to the sub-shell.
-
-`C-c C-x'
- A prefix command to conveniently access the global <C-x> commands.
- For example, `C-c C-x o' invokes the global binding of `C-x o',
- which is normally `other-window'.
-