Command File SyntaxEpsilon's command files appear in a human-readable format, so you can easily modify them. Parentheses surround each command. Inside the parentheses appear a command name, and optionally one or more arguments. The command can be one of several special commands described in the next section, or most any EEL subroutine. See the next section for details.
Each argument can be either a number, a string, or a key list (a special type of string). Spaces separate one argument from the next. Thus, each command looks something like this:
You can include comments in a command file by putting a semicolon or hash sign ("#") anywhere an opening parenthesis may appear. Such a comment extends to the end of the line. You cannot put a comment inside a string.
For numbers, you can include bases using a prefix of "0x" for
hexadecimal, "0o" for octal, or "0b" for binary, or use an
EEL-style character constant like
A few commands such as
You can also use the special key syntax
In addition to the above command syntax with commands inside
parentheses, command files may contain lines that define variables,
macros, key tables, bindings and color schemes. Epsilon understands
all the different types of lines generated by list-all,
list-colors and similar commands. When Epsilon records
customizations in your
Besides listing variables, macros, key tables, and bindings, commands like list-all also create lines that report that a particular command or subroutine written in Epsilon's EEL extension language exists. These lines give the name, but not the definition, since these are normally defined in a separate .e file. Typically, an earlier line in the file will have loaded the .e file that defined the command. When Epsilon reads a command line and encounters a line giving the name of a command or EEL subroutine, it simply checks to make sure that a command or subroutine with the given name exists. If not, it reports an error. Epsilon does the same thing with variables that have complicated types (pointers or structures, for example). These also should be defined in .e files.