I have been on a quest for a text editor I can fall in love with. If you Google on this topic, you will find many blog post just like this one. Programmers like myself, trying to find the perfect tool. It is frustrating - the perfect editor for me doesn't really exist.
My colleagues at work all use Emacs. Their fingers have those awful key combinations build into them, and they are super productive and wicked fast. I want to be wicked fast too. I have just had another bout of trying to learn Emacs, but I don't think it is for me.
I have tried over and over to learn it. I plunked down for the 3rd edition of Learning GNU Emacs, and started to read it again recently. But I'm giving up. My fingers are not that agile, and my brain rebels against learning all those multi key combinations. I want well though out keyboard shortcuts, but the layout of Emacs is just stupid. I do want a command to convert to uppercase sometimes, but that should be tucked nicely away in a menu, not Meta-u. Emacs was pre-clipboard, and whole yank thing just bothers me. Cut is Control-x, thank you very much. That much my fingers do know.
I used Codewright for a long time, and I quite liked version 5.2. Version 6.X was really buggy and I stopped using it. (For that matter, it has been discontinued, and sent to the graveyard of dead Borland products.) I just used the Visual Studio IDE after that. But we have linux boxes at work, and I'd really like to be cross platform.
My wish list:
- Cross platform (windows, linux, and bonus points for Mac)
- Non-ugly. I look at this for 8 hours a day, so it needs to be elegant.
- Well thought out interface, not requiring lots of complicated key combinations.
- Support for C++, Python, R, and Ruby.
- Able to search in all open files
- An open file pane. That is have the names of the files in a nice alphabetical list at the side of the screen. I don't really like file tabs, since they stop working well once you have lots of files open.
- Some sort of tags support for symbols
- Ability to compile a project, and suck out the errors that result
- Fast, and able to open lots of big files.
- A console window that lets you run shell commands
- Stable, with a nice active community or "ecosystem"
I don't think there anything on the market that fits all my wish list.
If I could just use a Mac all day, I'd have BBedit or TextMate. Oh how I'd like to use TextMate. But unfortunately it is Windows boxes and Linux clusters for me.
Emacs and vim dominate the linux market, but they involve overly complicated key combinations. I know you can be very productive with them, but can't seem to get my fingers to that level.
There are a number of nice windows only editors that do pretty well on my list. I have to put in a plug for Boxer, which I use every day as a supplement to Visual Studio. It has a nice clean interface, is fast and works on big files. It doesn't do tags or external compilation, or have an open file pane. If you're reading this and looking at editors, give it a look.
I looked at EditPad Pro since was ported to linux and windows. It is pretty good. However, it uses Kylix for cross platform support, and that's also in that Borland Graveyard.
What is left? SciTE gets a lot of good buzz. It is cross platform and really fast. It does very nice code folding, which also does these useful dotted lines at indent levels. However, I was kind of surprised at how "lightweight" it really is. Want to convert to uppercase - sorry. I started to use it for a few days, but it can't do a search across all open files. That's something I really need to do. Looking at their development lists, the main author is opposed to adding it. He thinks a disk based "search in all file" command is a replacement, which it is totally not.
I tried out SlickEdit, and still may give it another go. It is cross platform (although the Motif interface is looking kind of old/ugly). It does all the IDE stuff like tags and external compilation. It is fast. It is, however, very expensive. A windows/linux "named user" license that would let me put it on all the computers I use is ~$400. Damn. I don't mind spending money on software, but that's way more than typical. Also, the interface is kind of cluttered. I found myself fiddling with it rather than doing work. [UPDATE: I've added a much more detailed look at SlickEdit here.]
I was kind of bummed at this point because I didn't think there was anything left. In desperation, I looked at Jedit. I discounted it at first because I really don't like Java. Java gets used to make programs that do things I find very boring. I assumed that any editor starting with the letter "j" would suck. However, it is really a nicely designed program. It is very elegant, and has some handy plugs-ins. The console and error list work really well with our home-grown build system. The only thing it doesn't do on my list is work well with large files. It uses almost 3X memory for a file, and you have to allocate the maximum memory up front (since it is a Java program). I give it 96MB of memory, which is just silly, and I still can't open 4 10MB files at once. Otherwise I give it very high marks. It has a huge "ecosystem" like Emacs does. That's nice because it means that someone has already done the syntax highlighting for R, a pretty obscure language I use. (They call it S+, if you're wondering where it is hiding.)
So for now, I'm giving Jedit a tryout. I'll use Boxer for my large files on windows, and probably SciTE on linux.
Anyone out there have any suggestions for something I missed?