Epsilon 12 was released on 15 October 2003. 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, or Epsilon 13.
Epsilon 12 includes these operating system versions:
Previous versions of Epsilon could be customized by setting variables and then writing a new state file. Epsilon 12 introduces a new customization method that lets it save most types of customizations in a version-neutral format. Customizations saved using this new method should automatically work in future versions, without any special upgrade procedure. The new import-customizations command uses this method to make it easy to import your customizations from Epsilon 8 and later.
Epsilon can now edit and display Unicode files. Buffers with Unicode use 16 bit characters. Epsilon knows how to translate between its native Unicode format and dozens of encodings and character sets such as UTF-8, ISO-8859-4, or KOI-8.
Epsilon autodetects the correct encoding for files that start with a Unicode signature ("byte order mark"), and for many files that use the UTF-8 or UTF-16 encodings. You can also specify a particular encoding, or convert text to or from any encoding Epsilon knows about.
Use the new comment-region command on Ctrl-C Ctrl-R to comment out a range of text, using commenting rules for the current mode on all lines in the region. With a numeric prefix argument like Ctrl-U Ctrl-C Ctrl-R, it uncomments lines in the region.
In some modes Epsilon now reindents the current line when you press <Enter>, in addition to indenting the new one.
Alt-Q now knows how to fill comments in more languages. Auto-breaking of comment lines is now enabled in more languages. A new variable auto-fill-comment-rules lets you customize when and how Epsilon breaks comment lines.
You can now select which types of items (functions, variables, macros, etc.) Epsilon will tag, and which the list-definitions command will display.
The next-error command can now be set to work with telnet or ssh (see below) buffers, so as it parses error messages from the compiler running on the server, it translates each file name into a URL Epsilon can use to retrieve that files. See Internet Support.
Epsilon for Unix now displays dialogs for setting the font and screen colors under X, similar to the Windows version. It remembers the selected font from session to session.
The two variables
that permitted customizing parts of the mode line have been replaced
by a new variable mode-format.
The new variable makes it possible to fashion some mode line formats
that weren't possible before, by specifying where elements like the
mode's name, the buffer name, or the current function's name are to
When Epsilon displays file names in mode lines or in most messages, it now abbreviates them if needed to fit the available space, ensuring that other parts of the mode line or message are visible.
Prior to this version, the Win32 Console version of Epsilon always displayed buffers using an OEM character set. Now under Windows NT/2K/XP, it can use a Unicode-based character set instead.
Epsilon now records dired buffers in its session file, and restores them when you restart Epsilon later. It can also optionally record and restore files and directories accessed via URL's in its session file.
Epsilon for Windows can now complete on UNC server and share names
\\myserver\myshare, and on stream names, for files
on NTFS file systems that have multiple streams.
Epsilon for Unix can now complete on user names following a ~, and
treats such names somewhat like a separate hierarchy of symbolic
links, so that, for instance, a dired of
~* produces a
list of home directories of each user.
If you set up Epsilon to use scp connections to access remote files (see below), it can complete on such names.
Epsilon now uncompresses files with a .gz or .bz2 extension as it reads them, and in commands like grep.
Epsilon's hex mode now makes it easier to search for some literal text by automatically searching in the original buffer when you press Ctrl-S or Ctrl-R. You can now use the G command to go to an offset specified in decimal, octal, or binary, not just hexadecimal.
When Epsilon displays a list of possible completions for a buffer name, it now includes the name of each buffer's associated file, if any.
Epsilon recognizes new file variables to set the fill column or the compilation command.
Dired mode now hides files or directories whose names start with a period. The - key in dired mode toggles hiding.
Dired mode now includes an A subcommand to more conveniently set a file's attributes (Windows) or permission bits (Unix).
Epsilon for Windows can now display the file attributes Hidden, System, Read-only and Archive in its dired listings. See the dired-layout variable.
The V (view) subcommand now works under X by running the external program specified for that file's type by your Gnome settings (if Gnome files are installed).
Dired can now delete directories that aren't empty, or entire directory hierarchies. It asks for confirmation first.
Dired can now delete read-only files under Windows. Under both Windows and Unix, Epsilon now asks for confirmation before deleting a read-only file (except when deleting one in a directory to be deleted itself).
! key in dired to run a command on a file now looks
* character in the command line it prompts for. If
there is one, the current file name replaces it; otherwise the current
file name is appended to the end of the command. Also, a command line
ending in & now signals Epsilon to run it asynchronously; the
! key normally runs commands synchronously.
<p:Cyrillic>, or any hex digit by writing
<p:hex-digit>. You can also use Unicode character names like
You can build character classes using subtraction and intersection.
<alpha|1-5&!x-z> means any alpha
character or digit from 1 to 5, but not x, y, or z.
Regular expressions can match based on a character's color via syntax
<^c:*comment>printf finds uses of
printf that aren't commented out.
" characters that start a string in C mode,
ignoring those that end it, or appear quoted inside it, or in comments
or other places.
The new regular expression syntax
<h:0d 0a 45>
makes it easier to search by hex codes. That example is equivalent to
the older syntax
In a regular expression replace, the replacement text can now use the
#U to force the rest of the replacement to
uppercase (including text substituted from the match using syntax like
#C forces the
remaining text to lowercase, or capitalizes it, respectively. Using
#E marks the end of such case modifications; the
following replacement text will be substituted as-is. For instance,
searching for "
(<word>+) by (<word>+)" and
replacing it with "
#L#2#E By #U#1" will change the match
Two by Four" into "
four By TWO".
When you don't use the above syntax, replacing preserves the case of each match according to specific rules, which you can now modify using the new replace-by-case variable.
Regular expression replacement text can now include characters
specified by name, using the syntax
Regular expression replacing now works with very long replacement text; previously it was limited to 1000 characters.
Epsilon for Unix can now search manual pages with the new search-man-pages command. This also works in the Cygwin environment under Windows.
Epsilon can now restrict searching and replacing to a highlighted region (including rectangular regions).
In Info mode, searching with Ctrl-S and Ctrl-R can now continue the search into other nodes when there are no more matches in the current node.
The grep and file-query-replace commands now skip over files whose names match a customizable regular expression pattern, or which are actually devices or other special files (which can also be customized).
You can now configure what grep does when a file has been modified on disk or tell it to include the file's timestamp with each match.
Epsilon can now access remote files via scp, using external sftp or scp programs. Once scp support has been set up, features like dired (including directly copying between local and remote files), creating and deleting directories and completion all work. Ssh support, using an external ssh program, is also available.
Telnet buffers now interpret certain ANSI escape sequences for setting colors, and bare Ctrl-M characters that indicate overtyping, as well as a command history.
When Epsilon recognizes password prompts in telnet and process buffers, the regular expression it uses for this purpose can now be customized.
You can now set Epsilon to log the exact HTTP request it sends to access http URL's, or substitute your own HTTP requests for those Epsilon sends.
einit.ecmfile, and automatically load them each time you start Epsilon. This method of saving your customizations makes updating easier, because it records customizations in a version-neutral format (compared to recording customizations in a state file).
There are a number of ways to add entries to an einit.ecm file.
With any method, you can edit the einit.ecm file of customizations at any time. If you set record-customizations nonzero, it's not necessary to remember to save your state or otherwise preserve any customization; that becomes Epsilon's default behavior. Instead, if you set a variable or change a color and decide you don't want it preserved for the next time you run Epsilon, remove the corresponding line from your einit.ecm file.
You can use the clean-customizations command to prune your customization file, removing duplicate or unnecessary settings.
einit.ecm file uses Epsilon's command file syntax,
which has some enhancements in this version. Each binding line can
now specify a range of keys, not just one. And it's now possible to
execute many EEL subroutines from a command file and pass them
parameters. See Command Files
At many prompts, the Alt-g key now inserts an alternative default response. For instance, in a search and replace, Alt-g when entering replacement text inserts the original search text. Alt-g at many file prompts inserts the name of the current file.
Epsilon's notion of bindable keys has been redesigned. There are now many more possible key combinations. Epsilon now uses the concept of generic versus specific keys; for instance, the specific key <Backspace> is also generically a Ctrl-H key. If you bind this key to a new command, Epsilon will ask if you want to bind only the <Backspace> key, or all key combinations that generate a Ctrl-H.
The new variable alt-numpad-keys lets you set how
Epsilon for Windows treats the Alt versions of numeric pad keys.
program-keys command set this.
The new convenience command bind-last-macro combines name-kbd-macro and bind-to-key, and also provides a default name for the new macro. It replaces name-kbd-macro on Ctrl-X Alt-N.
The new command run-with-argument provides a simple way to pass a yanked numeric argument to a command, or one that you want to specify in a different base like hexadecimal.
With a numeric argument, the eval command now inserts the result of its computation into the current buffer instead of displaying it.
If you run the exit command with a numeric argument (Ctrl-U Ctrl-X Ctrl-C, for instance), Epsilon doesn't save any modifications to fonts, window sizes, and other settings it normally preserves when you exit.
Brief mode has many small changes that make it mimic Brief more closely. For instance, the new commands undo-by-commands and redo-by-commands group primitive undo operations in a way more similar to Brief.
Epsilon's -r flag now accepts an optional text argument following the command name, which it passes to the called EEL subroutine.
The new insert-date command inserts the current date. The new date-format variable controls its format, and the date format Epsilon uses in certain other contexts.
In Epsilon for Windows, when you click on a window to switch to Epsilon, it no longer sets the cursor where you clicked.
Epsilon for Linux is now available packaged in .deb and .rpm formats for the convenience of Debian and Red Hat Linux users.
Last Updated: 1 October 2009