Text Editors
The most important app for any programmers is a text editor. And as such, I have used several editors over the years and going to list down the editors that made my days.
These days, after programming for about a dozen years, what I value as a text editor are the following points,
- Has color syntax that is customizable (because usually default colors suck badly with pink and everything)
- Regular expression find and replace
- Customizable keyboard shortcut
- Can have tabs per file opened
- Scrolling is fast (This being slow and who wants to code?)
- Stability (Obviously. Losing unsaved code can really feel owned.)
- Fast loading of the app itself and files
- Detect and display character encodings (May not be that important for people who only write in ascii characters)
- Auto complete words and tag closing (This can seriously help with your typing)
- Can display file tree to easily navigate through files
- Preferably cross platform
As for fonts, they can make a great deal of change the way you feel about reading text and my recommendation for programming is BPMono. This is a mono width sans serif font and in my opinion reads very clearly at around 14 points. I always use this for my editor and on server terminals.
And here are the list of text editors I have used in the past in the order that I haved used since around 1998. (List of editors on Wikipedia for reference.)
I have never liked IDE type of editors that just comes with everything in 1 pack with added features and loading time. Instead I always prefer just using a plain simple powerful ‘text’ editor and use all the complementary tools that is specifically designed for it on the platform I develop.
EditPlus 
This was probably my first text editor that I have used after quitting to use a WYSIWYG editor when I was a newbie HTML person. I think this was one of the most advanced text editor on Windows platform that had quite decent feature set then. I have used it for several years while I was coding in perl against text file data storage.
The editor itself seems to have become actively maintained again these days.
EmEditor 
Being Japanese authored, it was sure to handle multi byte and character encodings well enough. It has been a very trusty editor for over a decade now. This launches seriously fast and can load big files quick, has a clean interface and basically has most of the features I want. I have used this as my main programming text editor from around 2002 for 5 years and I still keep the free version on all of the Windows instances I have because free version alone is 10 times better than Notepad.
gedit 


This is mainly for Linux and is usually the default editor when the OS is installed and as a default editor, it is probably the best out of Windows, Mac and Linux. If you don’t ask too much, you can do quite some coding with it alone.
Notepad2 
I had spent some time looking around at text editors when I wanted to find what was best for me, and this has proved to be a good Window’s Notepad alternative that is very lightweight and can do character encoding well and had a simple interface.
Programmer’s Notepad 
It’s hard to call this a ‘Notepad’ because it’s way more than just that. This was one of the candidate to be used as my primary editor. It’s even free and has most of the features well placed. (Forgot what was wrong with it now…)
E 
This, seems like a serious effort, despite the real short name (and it’s not a typo), at making a great text editor. It was quite polished at the time I tested several years ago. These days it seems to be trying to aim for the best text editor on Windows platform.
Smultron 
And ever since I moved to use Mac as my main machine around 2008, I got to see yet another bunch of text editor candidates. This was probably my first attempt at using the Mac OS X’s default TextEdit alternative and it does a decent job at it, only if the icon could have been better than a simple strawberry from its top. It became a shareware the day Apple brought App Store for OS X available.
CotEditor (Japanese) 
This is kind of very good for a free text editor that it is as good as any shareware out there. The icon is excellent and has most of the features well placed on a clean interface. I always keep this on my Mac as TextEdit alternative. (The interface is in English. Download is on this page and click on ‘CotEditor_1.0.1.dmg’)
TextMate 
The everyone’s favorite choice for programmer’s text editor on Mac. And while I agree it is good, it can’t even change keyboard shortcut and when it comes to multi byte rendering it doesn’t even support that and as such, I’m just not using it despite everyone cheering it. The ‘bundle’ system should be able to help with a lot of the complementary support a programmer needs though. It has a pretty good looking interface and I do somewhat wish to use it as a primary editor.
(I think Emacs guys wanted to sound funny here…)
Jedit X 
This is another Japanese made text editor (This is completely different from jEdit) and is quite capable for most of the programming goodies. Back some years ago, it wasn’t as good as the current version that had slow scrolling and no tabs but these days it’s probably good enough to be considered as a primary editor. The clean interface with a bunch of configuration options is a nice plus.
skEdit 
There’s the free TextWrangler but I never really liked that due to the interface looking like it’s from OS 9 but skEdit has a good looking interface and can even be linked to use subversion which feels handy at times. Has pretty much all the features I need.
Emacs (All platform)
No, I haven’t used it much since it loads slower than vim… “Because 0.5 seconds is too slow for me.” But I heard it’s good.
Vim/gVim (Beyond all platform)
Yes, this is actually my primary editor but no, I don’t actually like it that much…
The reason I came to ultimately stick to gVim after not being able to feel comfortable for over 3 years use of it is that, for one, it works on any platform, which means, I have a chance to use Windows here and there while mainly using Mac daily and I don’t want different environment. Also, I can use vim on the servers when I SSH in and once I just have all my vim config files uploaded, I can also edit just like every other typing moment, that I value about being able to feel the same.
Secondly, customization is limitless in vim, that is, while there are many great text editors out there, if the developer doesn’t like your feature request, all you can do is grumble alone (unless it’s opensource and you feel the urge to fix it and hope it gets taken) but vim, it’s all about learning the vim config file scripting or find the right plugin or write your own and you can be happier a little faster than fixing opensource text editors. Frankly, this is kind of the biggest reason I use vim. The future can’t suddenly feel dark.
I totally think that default configuration for vim is seriously user unfriendly and it must be customized heavily for me to feel better using it, like many keyboard shortcuts. If you think for once, that why do you have to type four keys (shift ; w enter) just to save a file which you should be doing every minute to avoid losses from crashes and so on? I just bind my space key to save a file and it just feels quite that much easier than keeping that nice big space bar to just move the cursor a letter ahead, which is its default action… This is my vimrc and gvimrc. (Note they don’t work without proper files in place.)
And here are some of the plugins I use mainly.
- AutoComplPop – What a champ. It auto completes any words appearing in any of the files open, meaning any variable names can be way easily typed. It also auto completes file path, so you don’t have to check the terminal or whatever to type in a file name.
- eregex.vim – This allows using perl style regular expression for search and replace.
- vtreeexplorer – It’s always so handy to keep a tree of files showing or else you can’t follow what files are there. I usually keep this separately on 1 tab and let it open files on new tabs, so the tree view doesn’t get in the way of the text editing.
