Lugaru's Epsilon
Programmer's
Editor

Context:
Epsilon User's Manual and Reference
   . . .
   General Concepts
      Buffer Concepts
      Window Concepts
      Epsilon's Screen Layout
      . . .
      The Menu Bar
   Commands by Topic
      . . .
      Buffers and Files
      Starting and Stopping Epsilon
      Running Other Programs
         The Concurrent Process
         Compiling From Epsilon
         DOS Concurrent Process
      Repeating Commands
      Simple Customizing
      . . .
   Command Reference
      abort
      about-epsilon
      alt-prefix
      . . .
      zoom-window
   . . .

Previous   Up    Next
The Open With Epsilon Shell Extension  Commands by Topic   The Concurrent Process


Epsilon User's Manual and Reference > Commands by Topic >

Running Other Programs

Epsilon provides several methods for running other programs from within Epsilon. The push command on Ctrl-X Ctrl-E starts a command processor (shell) running. You can then issue shell commands. When you type the "exit" command, you will return to Epsilon and can resume your work right where you left off.

With a numeric argument, the command asks for a command line to pass to the shell, runs this command, then returns. Epsilon asks you to type a key when the command finishes, so that you have a chance to read the command's output before Epsilon reclaims the screen.

While Epsilon runs a command processor or other program with the push command, it looks like you ran the program from outside of Epsilon. But Epsilon can make a copy of the input and output that occurs during the program's execution, and show it to you when the program returns to Epsilon. If you set the variable capture-output to a nonzero value (normally it has the value zero), Epsilon will make such a transcript. When you return to Epsilon, this transcript will appear in a buffer named "process". In this case, Epsilon won't ask you to type a key when the process finishes, since the entire session appears in the process buffer.

You can use the filter-region command on Alt-| to process the current region through an external command. Epsilon will run the command, sending a copy of the region to it as its standard input. By default, the external command's output goes to a new buffer. Run filter-region with a numeric argument if you want the output to replace the current region.

Under DOS, the shell-shrinks variable helps to determine the amount of memory available to the process. If zero, Epsilon and the process split the available memory (see DOS Concurrent Process for details). Thus, very large programs may run out of memory when run from within Epsilon in this way. If shell-shrinks has a nonzero value, Epsilon will unload itself from memory until you exit from the process, leaving only a small section of itself behind. We call this shrinking. After your program runs, Epsilon will reload itself, leaving you in exactly the same state as before the shrinking occurred. By default, shell-shrinks has a nonzero value.

Epsilon for DOS shrinks by copying most of itself to a file named eshrink, normally in the same directory it creates a swap file in. See Epsilon Command Line. However, if Epsilon has access to EMS or XMS memory for buffers, it will put as much of itself as will fit there before it creates an eshrink file.

Configuration variables (see Configuration Variables) let you customize what command Epsilon runs when it wants to start a process. Epsilon runs the command file named by the EPSCOMSPEC configuration variable. If no such variable exists, Epsilon uses the standard COMSPEC environment variable instead. Epsilon reports an error if neither exists.

If a configuration variable named INTERSHELLFLAGS has been defined, Epsilon passes the contents of this variable to the program as its command line. When Epsilon needs to pass a command line to the program, it doesn't use INTERSHELLFLAGS. Instead, it inserts the contents of the CMDSHELLFLAGS variable before the command line you type. (The sequence %% in CMDSHELLFLAGS makes Epsilon interpolate the command line at that point, instead of adding it after the flags.)

If Epsilon can't find a definition for INTERSHELLFLAGS or CMDSHELLFLAGS, it substitutes flags appropriate for the operating system.

Standard bindings:

  Ctrl-X Ctrl-E  push
   filter-region
 



Previous   Up    Next
The Open With Epsilon Shell Extension  Commands by Topic   The Concurrent Process


Lugaru Copyright (C) 1984, 2020 by Lugaru Software Ltd. All rights reserved.