New in Epsilon 13
Epsilon 13 was released on 2 May 2006. This page describes its new
features. You can also see the features we added in
Epsilon 6.0, Epsilon
6.5, Epsilon 7,
Epsilon 8, Epsilon
9, Epsilon 10,
Epsilon 11, Epsilon
12, or Epsilon 14.
Epsilon 13 includes these operating system versions:
All versions above share most customization files. The Epsilon
distribution also includes older versions of Epsilon that run under
OS/2 and DOS.
- A graphical version that runs under all 32-bit and 64-bit
versions of Windows.
- A Win32 console-mode executable that runs under all 32-bit and
64-bit versions of Windows. It looks much like the old DOS version of
Epsilon, but provides most of the features of the Win32 GUI version.
- A Mac OS X application that can run as an X11 program or as a
curses-style terminal program. Both PowerPC and Intel-based systems
- A 32-bit Linux executable, and another for FreeBSD Unix. Each
runs as an X11 program under the X11 Windowing System, or as a
curses-style program on the console or terminals.
Major New Features
Epsilon now supports Mac OS X. It can
run in either Terminal or X11 mode, dynamically selecting the best
available mode. Epsilon for Mac OS X is distributed as an application
bundle that supports drag-and-drop installation.|
(Click on any screen shot to see a full-size version.)
Modes for XML and
HTML have been extensively enhanced. They now support smart
indenting and embedded CSS and Python scripting. And they
automatically highlight matching and mismatched tags. There are new
commands to move by tags or elements, delete matched tags, insert an
end tag to close the current element, list unmatched tags, and sort
and align XML attributes.|
Epsilon can now display
misspelled words as you edit. In programming language modes, it
marks only words in comments and strings. (Modes can easily customize
this.) Epsilon also offers suggestions for correcting these
misspellings, either using its own guessing algorithm or one of
several external programs. It maintains per-file, per-directory, and
global ignore lists. A traditional spell-buffer-or-region
command and a spell-grep
command to list all misspelled words are also available.
A new context-sensitive
help feature provides help on language keywords using flexible
mode-based rules. It includes built-in rules for C, C++, Perl, PHP,
Shell scripts, VHDL, Tcl, and EEL, and you can customize them by
simply setting a variable. Rules can offer help by conducting a web
search, accessing Windows-based help in various formats, displaying
Info documentation, and other methods.|
A new browse-symbol
command provides an enhanced interface to the source code browser
database generated by Microsoft compilers. Epsilon can display the
names of all functions that read or write a certain variable or call a
particular function, and show the actual lines that do so, letting you
quickly navigate to one. Results can be filtered in various ways.
You can now use Epsilon's native tagging facility side by side with a
- Epsilon now prompts for SCP passwords and
passphrases, automatically restarts disconnected SCP jobs, and detects
when an SCP URL names a directory. Grep and completion now work on
- The new align-region
command makes it easy to have various language elements line up
- The new compare-to-prior-version
command shows what changes you've made in the current editing
- The new undo-movements and redo-movements commands return to those
locations in a large file where you've made modifications before.
- A new mode supports the Tcl
- Epsilon for Unix supports new-style clipboard
usage under X11, distinguishing between the primary selection and
the clipboard. This helps it interact more naturally with KDE and
Gnome programs. Setting the clipboard-format
1 mimics Epsilon's previous behavior of only
using the primary selection. Middle-clicking, which normally performs
pan-style scrolling, now inserts the primary selection when
- Epsilon now supports many more "file
variables", special lines in a file that set its mode, tab size,
or other settings. You can now create directory-wide settings,
setting up a special file that says, for instance, that all C++ files
in that directory should be indented using spaces only, not tabs. And
Epsilon now recognizes the syntax used by the Vi/Vim family of editors
for file variables.
- You can set completion to skip over files whose names match a
certain pattern using the new ignore-file-pattern and ignore-file-basename variables.
By default, completion ignores files and directories starting with a
period character. If these rules eliminate all possible matches,
Epsilon suspends them for that completion.
- To autodetect the correct line
translation rule (Unix vs. Windows vs. Macintosh line endings),
Epsilon now looks at a much larger section of each file, resulting in
improved accuracy, and explains why it chose a particular translation
- You can now set line translation rules for new remote
files on a per-system basis, using host-specific variables.
- You can now easily set Epsilon to prevent saving a file with an
unterminated line at the end, either for all files or only for
specific modes, using the default-add-final-newline
- When auto-saving is enabled, Epsilon now auto-saves based on idle
time as well as character counts, no longer displays a message each
time it auto-saves, and cleans up old auto-save files automatically,
among other enhancements. The want-auto-save variable has new bits to
configure some of the new features, and there are new variables auto-save-biggest-file and auto-save-idle-seconds.
- File pattern matching on
** can now be set to skip directories whose
names match a pattern. Under Windows, you can restrict completion and
other matching on UNC file
names to particular domains.
- Epsilon for Windows can now be set to accept Cygwin-style file names on its
- Many dired subcommands that ask for confirmation now recognize an "All"
option that skips the warning for the remaining files in a group. The
dired command now displays very large files properly. On long
multi-directory listings, it shows its progress earlier. And under
Windows, the dired-layout variable can
now be set to use an alternative date format; its new default setting
makes Epsilon display the read-only flag of each file.
- Bufed has a new m subcommand that toggles
whether modified buffers appear first in its listing.
- The new copy-file-name command
on Ctrl-C Alt-n puts the current file name on the clipboard.
- Epsilon's warning that a file has changed on disk now includes an
option to display a visual-diff listing
of the differences.
Searching Features in Epsilon 13
- Dired now includes a Shift-G subcommand that
runs a flavor of grep to select files for an
operation based on their content. For instance, it's now easy to move
only those files in a directory that don't contain the word "approved"
into a separate directory. The new dired keys Alt-
] move by such markings or by subdirectories (in
a multi-directory listing).
- Literal replacement text in a search and replace can now be much
- Grep has new
subcommands Alt-n and Alt-p that move to the next or previous match in
a different file. (Use Alt-
[ and Alt-
move to the next or previous searches.)
- The new count-words command
displays the number of words in the current buffer or region. With a
prefix argument, it prompts for a search pattern, then counts its
- Searching commands now record failed searches in command history.
The new toggle-case-fold command
toggles the case-fold setting for the current buffer.
- Typing Ctrl-Q Ctrl-@ at a search prompt to search for a null
character now works.
- The new
code in replacement text can be used to more easily swap words in
a list of alternatives.
- The search-in-region
variable has a new flag that makes grepping a single buffer restrict
itself to a highlighted region.
- The buffer-grep command is
new, providing an alternative to invoking grep with a numeric
argument, so you can bind it to a key.
Language Mode Improvements in Epsilon 13
- A new mode recognizes Tcl
files. It provides syntax highlighting, smart indenting, and comment
- HTML and XML modes have been enhanced extensively. They now
support smart indenting and embedded CSS and Python scripting, and
automatically highlight matching and mismatched tags. There are new
commands to move by tags or elements (html-forward-tag and html-backward-tag on Alt-Shift-F and
Alt-Shift-B), delete matched tags (html-delete-tag on Alt-Shift-D),
insert an end tag to close the current element (html-close-last-tag on
Alt-Shift-E), list unmatched tags (html-list-mismatched-tags
on Alt-Shift-L), and sort and align XML attributes (xml-sort-by-attribute-name
- Visual Basic mode now recognizes the new keywords and syntax of
- Epsilon's C mode now supports Objective-C, and better
- The new copy-include-file-name command
on Ctrl-C Alt-i puts a C-style
#include statement for the
current file onto the clipboard; for other languages it uses the
appropriate syntax for including files. Several new mode-specific
variables provide specialized rules for their modes.
- Python mode now has smarter indenting rules, fills paragraphs in
triple-quoted strings, and has <Backspace> set
to delete spaces by indentation level.
- GAMS mode now provides more help when
you use the compile-buffer command.
It automatically locates and reads the .lst file generated by the GAMS
compiler and translates any error messages into a format the next-error command can read.
- C mode tagging now skips
#if 0 blocks, and the new tag-c-preprocessor-skip-pat
variable lets you customize it to skip other
- With a numeric prefix argument of zero, the tagging commands now
prompt for a key to indicate a destination window. This lets you
force the definition to appear in a specific window instead of letting
the tagging command pick one.
- The auto-show-adjacent-delimiter
variable can now be set to show its highlighting in all windows
displaying the current buffer, not just the current one.
- The variables auto-show-html-delimiters,
html-indenting-rules, and html-display-definition all
have new options or new meanings, as well as new default values.
- New variables compile-html-cmd, compile-xml-cmd and compile-php-cmd make it easier to set
up the compile-buffer command to run an external program in these
modes. The new xml-auto-fill-mode variable
controls filling in XML mode.
Display Enhancements in Epsilon 13
- Epsilon can now display a line number to the left of each line,
via the new draw-line-numbers
variable. Many formatting options are available.
- Follow mode links adjacent
windows displaying the same buffer, so any scrolling or other movement
in one is immediately reflected in the others. This makes them act
like one big window.
- The new copy-formatting-as-html
command translates coloring in the buffer into HTML and puts the
resulting HTML code on the clipboard.
- Epsilon's mode line now includes the column and line number,
because the mode-format variable has a
new default setting that includes
- Epsilon's window title now includes the current buffer's name by
default, when the current buffer has no associated file. See the window-caption-buffer variable.
Running Other Programs in Epsilon 13
- Epsilon produces much more accurate representations of ANSI
color-setting escape sequences in process, telnet, or ssh buffer
output. It also interprets additional kinds of formatting codes. The
variables process-coloring-rules, telnet-interpret-output,
ssh-coloring-rules (replaced in version 13.07 by ssh-interpret-output) all
have new bits defined, and new default settings.
- The new process-view-error-lines
variable lets you configure next-error
and similar commands to display the full error message in its buffer
in a separate window, as it displays the source file line in error in
a main one.
- Process buffer completion now limits completion to directory names
in appropriate cases; see the process-completion-dircmds
- Buffers in Telnet mode no longer
jump to the end of the buffer whenever the remote system sends output,
but you can reenable this behavior with a new flag in the
Formatting Improvements in Epsilon 13
- The new prefix-fill-paragraph command
replaces fill-indented-paragraph on the
Alt-Shift-Q key (though the latter command is still available by
name). It provides smarter paragraph filling when lines in the
paragraph share a common prefix (not simply when they share common
indentation, as with fill-indented-paragraph).
- New commands help with filling paragraphs from emails that use
# to indicate quoting. The
mail-fill-paragraph command on
Ctrl-C Alt-Q fills such paragraphs, and Ctrl-C > (the mail-quote-region) and Ctrl-C <
mail-unquote remove it.
- The new delete-region command
deletes a region without saving it in a kill ring, and the new delete-options variable alters the
behavior of commands that delete single characters. The
has many new options.
Other Enhanced Commands in Epsilon 13
- When you use the set-variable
command on F8 to set the value of a buffer-specific or window-specific
variable, Epsilon now offers to set the value in all buffers or
- In set-variable and
other places where Epsilon prompts for a number, you can now use
integer arithmetic expressions.
- Command file syntax
now recognizes its own
commands. You can now run a command and send it a numeric prefix
argument. For all names of commands and variables, quotes are now
optional. The new
subroutine can be used from a command file to execute arbitrary code
without a separate EEL file.
- When Epsilon displays help on a command or variable, in
environments where such help isn't already linked to the rest of the
Epsilon manual, it now offers to display the same topic in a web
browser, providing convenient access to linked related topics.
- The diff, visual-diff, and merge-diff commands no longer prompt for
the name of a buffer by default. They now use a buffer named
#diff#, unless you use a numeric prefix argument to make
- The eval command now recognizes
; followed by a printf-style format specification. For
123+456;x to show the result of that
calculation in hexadecimal, or
0x03B5;k to insert the
name of Unicode character U+03B5 (using Ctrl-U before the eval to make
it insert the result).
Configuring and Running Improvements in Epsilon 13
- Epsilon for Windows includes a new configure-epsilon command that
starts a dialog for reconfiguring its Start menu icon, setting up file
associations, and similar tasks.
- Epsilon and EEL now use simpler rules to locate
their files. Relocating Epsilon's installation to a different
directory requires setting an explicit EpsPath in fewer cases. As a
result of this, the -w4 flag's behavior in previous versions is now
the default; the new -w32 reverses it. And -w flag settings are now
- Under Windows, Epsilon's state file has a new default name that
incorporates the version number, as under Unix. And Epsilon for
Windows now writes customized state files to the user's customization
directory, like Epsilon for Unix.
- The set-color dialog now displays
color classes arranged in a tree format. You can now use Ctrl-S and
related keys within the Windows set-color dialog to search for class
or scheme names. Searching for class names also works under both
Win32 and Unix console environments.
- Epsilon now recognizes the new -dir flag to set a
relative directory for relative command line file names. This helps
it support uses like "
epsilon -add filename" where
filename is a Cygwin-style pathname.
- Epsilon now processes -l command line flags at the same time as -d
flags, so an -l flag to load EEL code may define variables for a later
-d to set.
- The -wait flag
resume-client command now work under
Unix-specific Enhancements in Epsilon 13
- Dired's v subcommand
for opening a document file using the appropriate program now
understands KDE, Gnome 1 and 2, and Mac OS X methods of doing this.
- Epsilon now recognizes up to 64 function keys, as well as the keys
and <NumHelp> found on Mac keyboards but not PCs. And it
provides better support for any keys it doesn't recognize, both under
X11 and in terminal mode.
- Under X11, Epsilon dynamically chooses which modifier key will act
as an Alt key; the new -ka1
flag forces the previous behavior of always using modifier key 1.
- In distributions where Epsilon uses shared libraries (Red Hat,
Debian, and Mac OS X), a new
is included; this runs Epsilon in console mode only, and does not
depend on X11 shared libraries being installed.
- When Epsilon looks for italic and bold fonts under X11, if the
current font has no italic or bold style Epsilon can use, it will try
to borrow them from another font. The font-styles variable may be set to prevent
- Under X11, Epsilon now picks better colors on palette devices with
limited available colors.
EEL Improvements in Epsilon 13
Epsilon 13 also includes several enhancements to the EEL
extension language, and a variety of new or improved
functions, including some basic support for
64-bit file sizes, a large number of display
enhancements, and improved support for running
There are also many other minor improvements throughout the editor.
Place your update order now.
Last Updated: 20 October 2020