Lugaru's Epsilon
Editor 14.01

Epsilon User's Manual and Reference
   . . .
   General Concepts
      Buffer Concepts
      Window Concepts
      Epsilon's Screen Layout
      . . .
      The Menu Bar
   Commands by Topic
      . . .
      Moving Around
      Changing Text
      Language Modes
         Asm Mode
         Batch Mode
         C Mode
         . . .
         Visual Basic Mode
      More Programming Features
      Fixing Mistakes
      . . .
   Command Reference
      . . .
   . . .

Previous   Up    Next
Hex Mode  Commands by Topic   Asm Mode

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

Language Modes

When you use the find-file command to read in a file, Epsilon looks at the file's extension to see if it has a mode appropriate for editing that type of file. For example, when you read a .h file, Epsilon goes into C mode. Specifically, whenever you use find-file and give it a file name "foo.ext", after find-file reads in the file, it executes a command named "suffix_ext", if such a command exists. The find-file command constructs a subroutine name from the file extension to allow you to customize what happens when you begin editing a file with that extension.

For example, if you want to enter C mode automatically whenever you use find-file on a ".x" file, you simply create a command (a keyboard macro would do) called "suffix_x", and have that command call c-mode, or even better, an existing suffix_ function. One way is to add a line like this to your einit.ecm file (see Command Files):

(define-macro "suffix-x" "<!suffix-c>")

For another example, you can easily stop Epsilon from automatically entering C mode on a ".h" file by using the delete-name command to delete the subroutine "suffix-h". (You can interchange the - and _ characters in Epsilon command names.) Or define a suffix-h macro so it calls the fundamental-mode command in your einit.ecm file, as above.

When Epsilon doesn't recognize a file's extension, a file has no extension, or when an extension is frequently used for different kinds of data, Epsilon examines the file's contents to help pick the best mode. A subroutine you can customize named guess_mode_without_extension( ) performs this task.

A file's text can include a file variable (see File Variables) that specifies the correct mode to use, and Epsilon will use that mode instead of choosing one itself.

Epsilon also has various features that are useful in many different language modes. See the description of tagging in Tags and the section in More Programming Features.

In addition to the language-specific modes described in the following sections, Epsilon includes modes that support various Epsilon features. For example, the buffer listing generated by the bufed command on Ctrl-x Ctrl-b is actually in an Epsilon buffer, and that buffer is in Bufed mode. Press F1 m to display help on the current mode.

Many language modes will call a hook function if you've defined one. For example, C mode tries to call a function named c_mode_hook(). A hook function is a good place to customize a mode by setting buffer-specific variables. It can be a keyboard macro or a function written in EEL, and it will be called whenever Epsilon loads a file that should be in the specified mode.

To customize a mode's key bindings, see the example for C mode in C Mode.

The fundamental-mode command removes changes to key bindings made by modes such as C mode, Dired mode, or Bufed mode. You can configure Epsilon to highlight matching parentheses and other delimiters in fundamental mode; see the fundamental-auto-show-delim-chars variable.

Also see File Name Prompts to customize the list of file types shown in File/Open and similar dialogs in Epsilon for Windows.

Standard bindings:



Asm Mode
Batch Mode
C Mode
Other C mode Features
Configuration File Mode
HTML, XML, and CSS Modes
Ini File Mode
Makefile Mode
Perl Mode
PHP Mode
PostScript Mode
Python Mode
R Mode
Shell Mode
Tcl Mode
TeX and LaTeX Modes
Visual Basic Mode

Previous   Up    Next
Hex Mode  Commands by Topic   Asm Mode

Lugaru Epsilon Programmer's Editor 14.01 manual. Copyright (C) 1984, 2020 by Lugaru Software Ltd. All rights reserved.