There are many text editors out there. You’ve already heard of most of them. Here’s one you probably haven’t heard of. SlickEdit, the sole product of a company by the same name, is an editor that is focused on only one thing: writing code. This is a tool for professionals with a feature set—and price—to match.
There are many ways in which to classify text editors. An influential classification is the notion of Orthodox text editors. Western Orthodox editors are like Vi; they have no command language or a very rudimentary one, but they integrate well with tools of the native operating system. SlickEdit is more typical of Eastern Orthodox editors. It focuses on code folding, has a command line, and is both written in a feature-rich domain specific programming language.
Getting & Installing SlickEdit
A single-user license for SlickEdit sells for $299.00. This is not an impulse purchase for most people, even many successful programmers. Those who are skeptical of a text editor justifying such a price can get a fifteen-day free trial, which is what I cover in this review. Those who prefer to use a full integrated development environment rather than a bare code editor can get a version of SlickEdit called SlickEdit Core, which runs as a component in the Eclipse IDE.
As befits a feature-rich editor, the installation process for SlickEdit takes more than one step. There’s nothing difficult about it. The initial setup process includes questions about what font and text coloring you want as well as file associations and keyboard shortcuts. An important step, to which I’ll return, is the part where the user is asked what user interface to emulate. The default is CUA; that is, the keyboard shortcuts that Windows users are accustomed to (Ctrl-C for Copy, Ctrl-V for Paste, and so forth). SlickEdit can also emulate Emacs, Vim, and other editors, such as ISPF (that’s a text editor/environment that runs on mainframes; the original developer of SlickEdit used to work for IBM).
I would like to thank the authors of SlickEdit for not taking over all possible file associations by default. Instead, SlickEdit politely asks what types of files you would like to have associated with it. Too many applications, these days, are presumptuous enough to grab every file type that they possibly can without informing the user beforehand (I’m looking at you, iTunes!).
A few paragraphs ago, I mentioned that SlickEdit is an Eastern Orthodox text editor. One of the distinguishing features of such editors is fully interactive command line. This can be invoked by pressing the Escape key. Another distinguishing feature is the use of a domain specific programming language to both customize the editor as well as implement large parts of the editor itself. For SlickEdit, that language is Slick-C, a language that resembles C to a great extent.
Here’s an example of how those two features interact. SlickEdit, to my surprise, does not have a word count feature. Emacs was tardy on this feature, too, but at least it got a native word count command in recent versions. I fired up my favorite search engine to find a SlickEdit script that would do word count and found this. I pasted the code into a new buffer and pressed F12 to compile it only to receive an error in the status line saying that a variable was not defined. When I hovered my mouse over the variable name, a tooltip popped up with a suggestion for how to fix it! I put the suggested line after the other variable declarations, pressed F12 again, and I was able to invoke the command by pressing Escape followed by “wc”.
That’s only a small slice of SlickEdit’s versatility. The company devotes a long page to some of SlickEdit’s more impressive features. In particular, SlickEdit’s autocompletion is the best that I’ve seen this side of Visual Studio. Not only does it complete standard functions, it also completes symbols that you’ve already typed into the buffer. This feature does get in the way, though; if you stop typing for too long after entering part of a word, the autocomplete will pop up. The cursor motion keys will go to the autocomplete menu rather than the buffer itself.
As impressive as SlickEdit’s advanced features can be, I did run into some problems. First, there’s the issue of keyboard shortcuts. CUA keybindings are the default hotkeys, yet SlickEdit’s implementation of them is idiosyncratic. I’ll give just a few examples. The Ctrl-Backspace shortcut deletes the current line rather then the previous word (this one was especially infuriating to me). The Ctrl-N shortcut cycles to the next open document rather than creating a new one. The F10 key does not activate the menu (at least the Alt key still does that). The Alt-Up and Alt-Down keys do not move by line breaks (i.e., paragraphs). Oddly, Alt-Backspace works as Undo in addition to Ctrl-Z (not many people know this, but the CUA standard specifies the former instead of the latter).
Most things are configurable and hotkeys are no exception, of course. Select “Keys Help…” from the Help menu to see the keybindings. But that wasn’t the only problem that I had. I was unable to enter a minus (-) or plus (+) signs from the main body of the keyboard; I had to use the numeric keypad, instead. Granted, I use a modified Dvorak layout, but I have not had this problem with any other piece of software on my rig. I e-mailed the support liason who wrote to me after I registered the program, but I never received a response.
Aside from that disappointment, SlickEdit is a true Eastern Orthodox text editor, so it has extensive documentation included with the installation. Too many programs only point to a website when the help function is invoked. The extensive documentation brings up another annoyance. There’s so much of it because SlickEdit is so featureful, yet the trial period only lasts fifteen days. This is for an editor that is perhaps the only peer of Emacs in terms of feature set and configurability.
I really wanted to like this editor. Many hackers speak highly of it. Perhaps my difficulties are the fault of my own expectations (or my own setup in the case of – and +). I’ll hold off on buying this editor until I can justify spending three hundred dollars to give it another chance.