packages icon



 FEP(1L)                      SRA Distribution                       FEP(1L)
                                 5 Aug 1988



 NAME
      fep - general purpose front end processor

 SYNOPSIS
      fep [-emacs|-vi] UNIX-command

 DESCRIPTION
      Fep is a general purpose front end processor applicable to most UNIX
      commands that features vi(1)- or emacs(1)-like line editing and a
      command history mechanism like that of csh(1).

      Choice of editing style is made by selecting either the emacs mode or
      the vi mode (named for the editors they emulate), specified either by
      command line option or by setting a variable interactively or in the
      start-up file or environment EDITMODE (see editmode variable).

      The default key bindings are shown below for both edit modes.  These
      can be customized using the fep-bind command.

      Emacs Bindings

      Here follow the default key bindings for the emacs mode.  Each
      function name should be self-explanatory.  The function names are
      defined as similarly to Gosling's emacs as possible.

           ^@             mark
           ^A             beginning-of-line
           ^B             backward-character
           ^D             delete-next-character
           ^E             end-of-line
           ^F             forward-character
           ^I             insert-tab
           ^J             new-line
           ^K             kill-to-end-of-line
           ^L             clear-screen
           ^M             new-line
           ^N             next-history
           ^P             previous-history
           ^T             previous-history
           ^Y             yank-from-kill-buffer
           ^^             toggle-transparency
           ^X-^B          show-bindings
           ^X-^H          show-history
           ^X-^C          terminate
           ^X-^D          send-eof
           ^X-^L          repaint
           ^X-^V          view-buffer
           ^X-(           start-script
           ^X-)           end-script
           esc-b          backward-word
           esc-B          backward-word



                                    - 1 -           Formatted:  June 9, 2026






 FEP(1L)                      SRA Distribution                       FEP(1L)
                                 5 Aug 1988



           esc-d          delete-next-word
           esc-D          delete-next-word
           esc-f          forward-word
           esc-F          forward-word
           esc-h          delete-previous-word
           esc-H          delete-previous-word
           esc-l          list-file-name
           esc-L          list-file-name
           esc-esc        expand-file-name
           esc-?          help
           esc-_          invoke-shell
           esc-<          search-reverse
           esc->          search-forward
           esc-p          insert-previous-history
           esc-n          insert-next-history
           esc-.          insert-current-history
           /* Bindings inherited from the tty driver */
           erase          delete-previous-character
           kill           delete-line
           rprnt          reprint
           werase         delete-previous-word
           lnext          literal-next

      Vi bindings

      The vi mode has two sub-modes, the command mode and the text insert
      mode.  The commands of vi are emulated as correctly as possible.  Here
      is a list of the default key bindings of the vi mode that differ from
      normal vi commands.  The tty driver control characters are also
      inherited in this mode.

           n              search-reverse
           N              search-forward
           ^A             expand-file-name
           ^L             list-file-name
           ^N             next-history
           ^P             previous-history
           ^R             reprint
           ^^             toggle-transparency
           ^X-^B          show-bindings
           ^X-^C          terminate
           ^X-^D          send-eof
           ^X-^H          show-history
           ^X-^L          repaint
           ^X-^X          expand-file-name
           ^X-^V          view-buffer
           ^X-l           list-file-name
           ^X-L           list-file-name
           ^X-?           help
           ^X-(           start-script
           ^X-)           end-script



                                    - 2 -           Formatted:  June 9, 2026






 FEP(1L)                      SRA Distribution                       FEP(1L)
                                 5 Aug 1988



      Built-in commands

      Fep has some built-in commands that are not passed to the child
      process but understood and processed by fep itself.  These commands
      can be issued from the terminal or from the start-up file.

         fep-bind function-name key-binding
              Change key bindings.  For example, to bind the function list-
              file-name to the string "^X-^X", type the following:

                   fep-bind list-file-name "\^X\^X"


         fep-alias
         fep-alias name
         fep-alias name string
              The first form prints all aliases.  The second form prints the
              alias for name.  The last form set the alias for name to
              string.

              You can refer arguments in command line by !^, !$, !*; they
              stand for first, last, all arguments correspondingly.

              To specify multiple commands in one alias, command should be
              separated by semicolon (;) character.  For example, next
              description will allow you to execute fep-cd then pass cd
              command to shell when input ``cd'' command.

                   fep-alias cd 'fep-cd !$;cd !$'

              Note: Fep built-in functions must be defined before normal
              commands.

              If you use fep without auto-tty-fix, following alias could be
              usefull.

                   if $command == sh
                        fep-alias more "fep-command more"
                        fep-alias vi "fep-command vi"
                   endif


         fep-unalias list
              Remove alias for each name in list.

         fep-set variable = value
              Set a variable of fep to some value.

         fep-unset variable
              Unset a variable.




                                    - 3 -           Formatted:  June 9, 2026






 FEP(1L)                      SRA Distribution                       FEP(1L)
                                 5 Aug 1988



         fep-cd [ directory ]
         fep-chdir [ directory ]
              Change directory.  It sometimes happens that a child process
              has changed directory, but fep is still in the old directory.
              In such a case, neither list-file-name nor expand-file-name
              will function as expected.  This command allows you to change
              fep's current working directory (default = home directory).

         fep-pwd
              Print fep's current working directory.

         fep-history [ number of line ]
              Show the history of commands under fep.

         fep-echo arguments
              Only print the arguments.  Variable names can be used prefixed
              by the "$" character.

         fep-source file
              Read the specified file and execute it.  The contents of the
              file are not sent to sub-processes.

         fep-save-history [ number of lines to save ] file
              Save the current history buffer in the specified file.

         fep-read-history  [ file ]
              Read in the command history from the specified file.  The
              default file is the value of the history-file variable.  This
              file name is understood as a path relative to the home
              directory.  If you want to specify the name relative to the
              current directory instead, prefix the path by "./".

         fep-command command
         fep-! command
              Execute command.

         quit-fep
              Kill the sub-process and exit.

         fep-suspend
              Suspend fep itself.  In the unlikely possibility that fep
              falls into a dead-lock in which the sub-processes have stopped
              but fep is still running, use this command to escape from the
              situation.

         fep-read-from-file file
         fep-< file
              Read data from specified file and send them to sub-process.
              The sub-process will read the data from the file as if they
              are typed at the keyboard.




                                    - 4 -           Formatted:  June 9, 2026






 FEP(1L)                      SRA Distribution                       FEP(1L)
                                 5 Aug 1988



         fep-read-from-command command
         fep-<! command
              Send output of specified command to sub-process.

         fep-start-script [ script-file ]
         fep-script [ script-file ]
              Start to send input and output to a script file.  If script-
              file is specified, it is used.  If not the value of the
              variable script-file will be used.

         fep-stop-script
              Stop scripting.

         fep-show-bind
              Print current binding information.

         fep-repaint [ line ]
              Repaint last output from command to screen.  ``line''
              specifies number of lines to repaint (default is screenful
              maximum). See also ``auto-repaint'' and ``clear-repaint''
              variables.

      Control structures

         fep-if expression
         fep-elseif expression
         fep-else
         fep-endif
              Only four control structures are supported but that seems
              enough.  Expression allows only the two operators "==" and
              "!=".  Variables can be referenced by prefixing with the "$"
              character.

      Note: The "fep-" prefix of the built-in functions and the above
      operators can be abbreviated in commands that fep executes from a
      file.

      Comment

      Lines starting with the character "#" are ignored by fep.  If fep
      encounters a comment in interaction, it is sent to the sub-process.
      In reading from a file, comments will merely be ignored.

      Variables

      Fep uses some variables.

         alarm-on-eof                  default: off
              If this variable is set AND the function send-eof is not bound
              to the eof character AND the variable ignore-eof is not set,
              an alarm message will be displayed once the first time eof is



                                    - 5 -           Formatted:  June 9, 2026






 FEP(1L)                      SRA Distribution                       FEP(1L)
                                 5 Aug 1988



              encountered on an empty line.

         auto-repaint                  default: off
              If this variable is set, fep automatically repaints the screen
              after restarting.

         auto-tty-fix                  default: on
              If this variable is set, fep looks at the tty mode of the
              sub-command, and if the tty mode has changed, fep fixes the
              tty mode of standard out and sets the transparency flag
              according to the mode.  If this variable is not set, the
              automatic tty mode check is not done, so you have to change
              the tty mode and transparency explicitly using the toggle-
              transparency function.

         buffer                        default: 5120
              Specifies command output buffer size.  High-watermark used in
              buffer management mechanism will be set 4/5 of this count.

         clear-repaint                 default: off
              If this variable is set, fep clears the screen before
              repainting.

         command                       default: command-name
              Fep set this variable to the command name of the sub-process
              when it starts up.

         crt                           default: terminal size
              If set, more message is shown during printing the key bindings
              on each number of line specified by this variable.

         delimiters                    default: SPACE & TAB
              The contents of this variable are treated as delimiting
              characters for file name expantion and file name list.

         editmode                      default: emacs
              This variable defines the mode for command line editing.  Key
              bindings will be set for the appropriate defaults when this
              variable is changed.  Fep first looks at the environment
              variable EDITMODE, then looks at any command line arguments,
              and finally reads in the .feprc start-up file.

         expand-tilde                  default: on
              Fep expands "~" to the real home directory name by the
              expand-file-name function when this variable is set.

         history                       default: 100
              Fep maintains a history file of the length specified by this
              variable.





                                    - 6 -           Formatted:  June 9, 2026






 FEP(1L)                      SRA Distribution                       FEP(1L)
                                 5 Aug 1988



         history-file                  default: .fephistory
              Contains the name of the history file for reading from and
              writing to.  If the file described by this variable exists,
              fep will read the file into the history buffer on start up and
              then save the current session's history when it exits.

         ignore-empty-line             default: on
              If this variable is set, empty command lines are not saved in
              the history file.

         ignore-eof                    default: off
              Fep never worries about the eof character if this variable is
              set.

         ignore-same-line              default: on
              If this variable is set, command lines identical to the
              previous command line are not saved to the history file.

         ignore-same-line              default: on
              If this variable is set, command lines which is shorter than
              this value are not saved to the history file.

         noalias                       default: off
              If set, command aliasing won't be done.

         prompt                        default: see below
              Fep outputs a prompt after executing built-in functions.  The
              default string is set to the NULL string, but there are some
              default prompt strings for some common commands such as sh,
              dbx, lpc, mail, sendmail -bt and calc. However, since fep
              doesn't care about what program is running, the same prompt is
              still output when you are executing bc from sh.
              You can change the value of prompt and other variables in the
              start-up file as follows:

                   if $command == sh
                        set prompt = "$ "
                   endif

         savehist                      default: off
              If savehist is set fep saves the number of history entries
              specified by value of this variable in the file named in the
              variable history-file on terminating.

         script-file                   default: fepscript
              This variable is used by the fep-start-script command and by
              the start-script function.

         shell                         default: /bin/sh
              Describe the command name to be invoked by invoke-shell.




                                    - 7 -           Formatted:  June 9, 2026






 FEP(1L)                      SRA Distribution                       FEP(1L)
                                 5 Aug 1988



         showhist                      default: terminal size
              This variable specifies the number of history lines to be
              displayed by the show-history function.

         tty-fix-bell                  default: off
              If this variable is set, fep rings the bell when the tty mode
              is changed.

      Start-Up File

      Fep executes the file ".feprc" in the home directory of the user if it
      is found there when starting up.  It looks for arguments on the
      command line first, and only then reads the ".feprc" file, so the file
      has higher priority.

      Functions

           abort                       Abort function
           backward-Word               Backward word (non-space)
           backward-character          Backward character
           backward-word               Backward word (alpha-numeric)
           beginning-of-line           Jump to beginning of line
           clear-screen                Clear screen
           delete-line                 Delete whole line
           delete-next-Word            Delete next word (non-space)
           delete-next-character       Delete next character
           delete-next-word            Delete next word (alpha-numeric)
           delete-previous-Word        Delete previous word (non-space)
           delete-previous-character   Delete previous character
           delete-previous-word        Delete previous word (alpha-numeric)
           delete-to-kill-buffer       Delete resion to buffer
           end-of-line                 Jump to end of line
           end-script                  End script
           expand-file-name            Expand file name
           fix-transparency            Check tty and change transparency mode
           forward-Word                Forward word (non-space)
           forward-character           Forward character
           forward-to-end-of-Word      Forward to end of word (non-space)
           forward-to-end-of-word      Forward to end of word (alpha-numeric)
           forward-word                Forward word (alpha-numeric)
           help                        Show help
           ignore                      Ignore
           insert-and-flush            Insert the character and flush buffer
           insert-tab                  Insert tab
           invoke-shell                Invoke shell process
           kill-to-end-of-line         Delete current position to eol
           kill-to-top-of-line         Delete tol to current position
           list-file-name              List file name
           literal-next                Treat next character as literal
           mark                        Mark position
           new-line                    Insert newline



                                    - 8 -           Formatted:  June 9, 2026






 FEP(1L)                      SRA Distribution                       FEP(1L)
                                 5 Aug 1988



           next-history                Get next history
           previous-history            Get previous history
           insert-next-history         Insert next history
           insert-previous-history     Insert previous history
           insert-current-history      Insert current history
           repaint                     Repaint screen
           reprint                     Reprint line
           search-forward              Search forward last !history
           search-reverse              Search backward last !history
           self-insert                 Insert the character
           send-eof                    Send eof
           show-bindings               Show binding table
           show-history                Show history
           start-script                Start script
           suspend                     Suspend fep
           terminate                   Terminate fep
           toggle-transparency         Change transparency mode
           vi-c                        Vi c? commands
           vi-d                        Vi d? commands
           vi-edit                     Vi edit commands
           vi-ins-edit                 Vi insert mode
           vi-motion                   Vi cursor motion commands
           vi-new-line                 Vi new line
           vi-num                      Vi prefix number
           view-buffer                 View buffer
           yank-from-kill-buffer       Yank from kill buffer

      Probably only the function name "toggle-transparency" is hard to
      understand.  This function is provided for entering non-line-oriented
      tools from a line-oriented tool using fep.  Assume a situation where
      you are using sh(1) with fep, and then invoke vi(1).  Since fep
      intercepts all input for editing, vi cannot work correctly.  You can
      escape from this annoying situation using the "toggle-transparency"
      function which is bound to the Control-^ key by default.  Of course,
      it is also necessary to return to the normal mode after exiting vi.

      Note, however, that this tty mode fix can also be done automatically.
      If the auto-tty-fix variable is set, fep looks at the tty mode of the
      sub-command and fixes the tty mode of standard input accordingly.

 OTHERS
      Fep can handle SHIFT-JIS kanji code if compiled with the -DKANJI flag.

 SEE ALSO
      newcsh(1)

 COPYRIGHT
      Copyright (c) 1987, 1988 by Software Research Associates, Inc.
      Distribution without fee is allowed as long as all copyright notices
      are included.




                                    - 9 -           Formatted:  June 9, 2026






 FEP(1L)                      SRA Distribution                       FEP(1L)
                                 5 Aug 1988



 AUTHOR
      K. Utashiro
      Software Research Associates, Inc., Japan.
           UUCP:   kddlab!srava.sra.junet!utashiro
           ARPA:   utashiro%sra.junet@uunet.uu.net
           JUNET:  utashiro@sra.junet

 FILES
      ~/.feprc, ./.feprc   start-up file
      ~/.fephistory        default history file
      ./fepscript          default script file

 BUGS
      While working on the program the author sometimes lost his mind,
      whereupon so did the program.







































                                   - 10 -           Formatted:  June 9, 2026