Consistent |
|
Consider Epsilon's completion mechanism. If you begin typing a file name,
Epsilon can fill in the rest of the name for you, or show you all the
files that start with that name. A lot of editors can do that much. But Epsilon
isn't restricted to completing just file names. It does the same thing with
commands, variables, tags, buffers, screen sizes, and so forth. Epsilon's
completion mechanism is totally general, so it works everywhere. And
it's extensible, too: if you use Epsilon's powerful EEL language to write new
commands, those commands can use completion just like built-in ones. They'll
also automatically get the benefits of Epsilon's command history:
Epsilon remembers your previous responses to all prompts, even from one
session to the next, to save you typing.Now, let's say you're trying to select a file (or a command, or a variable...) and you can't remember its name, but you think the name "exit" occurs in it. Was that file "sysexit.cpp" or "jhexit.c" or possibly ...? With other editors, you get a list of files and then page through the list looking for the file you want. Not with Epsilon. When Epsilon shows you a list like this, you can search it like any other text, or use any other Epsilon commands on it.
This kind of generality makes it easy to do all kinds of tasks we've never even
thought of. Say you need to know how many subroutines or variables in your 100
megabyte project have the same name as one of the 10,000 files on your disk? No
problem with Epsilon. The tagging package gives you the list of subroutines and
variables in two keystrokes. Save it in a buffer the same way you'd preserve
any text. There are lots of ways to get a list of files (and if you want to
only look at files in a certain hierarchy, or on drives G:, H:, and I:, or
within a subdirectory whose name matches a pattern, you can do that too). Next,
use Epsilon's powerful and very fast "regular expression" replacing to remove
the directory names and extensions. Then just two more simple commands give you
the list of functions that match file names. Epsilon makes bizarre tasks
reasonable, and simple tasks easy.