What’s the Best Text Editor? The One I Use!

All developers have their favorite text/code editor, but is there one, best, magic bullet editor? Well, no. But the good news is there are lots of editors out there with tons of different features, so with a little experimentation, you can find one that fits your needs and preferences. And even if you do have a favorite right now, don’t be afraid to try out others—you might be pleasantly surprised with something new.

The “best editor” depends highly on the project at hand. What do developers look for in an editor? For the most part:

  • Availability in preferred OS
  • Ability to open/edit remote files (FTP/SFTP)
  • Auto completion
  • Multi-language (C/C++, Java, Perl, PHP, Ruby, etc…) syntax highlighting support
  • Column select
  • Powerful regular expression support, macros, scripts, etc…
  • Integration with version control systems
  • Project organization and easy file navigation (tabbed document interface)
  • Multi undo/redo
  • Customizable keyboard shortcuts
  • Code folding
  • File comparison
  • Line numbers
  • Ruler(s)

Ideally I’d give each editor its own blog post, but since it’d take a pretty long time to cover every single one, for now I’m only going to focus on those that I’ve had a chance to use and can comment on. I encourage you to give each a try, if you haven’t already.

So, without further ado, my list of editors (in the order in which I started using them):

vi/vim

Coming out of UC Berkeley in the 1970s, vi was the first major full-screen unix editor, and vi or one of its clones has been standard on virtually all Unix-like systems since then. One of these clones, vim, is now the version most developers use.

vi is not very intuitive for new users and its modal editing system and cryptic command set can be intimidating, but long-time users swear by it (or at it). The fact that you can’t just start up vi and type away takes some getting used to, but once you get the hang of it you can become very productive with it. Because it’s been around for so long, you can easily find plugins for everything and anything from integrating to a MySQL database to using it together with GitHub.

Emacs

Very similar to vi in terms of availability, this editor can almost always be found on a Unix-like system, and if it’s not, it can easily be installed for free. Like vi, Emacs has been around a long time and is very powerful, but at the same time it can be intimidating to newcomers. Emacs allows you to customize everything from its functionality (cut, paste, replace, etc…) to its user interface, to the point where it can be used as an IDE to allow a user to edit, compile, debug, and version control code.

Hardcore Unix/Linux developers tend to choose either Emacs or vi and never, ever change.

UltraEdit

UltraEdit hit the scene almost 20 years ago and is very rich in features. Like most established software, development for it continues and feature after feature has been added. In my opinion, it’s come to a point where it feels like it’s trying to do anything and everything for everyone, which is not necessarily a good thing. For example, providing the ability to open up and use an SSH session directly on the editor—to me, there are separate tools built specifically for this which do a better job (putty), and I don’t mind changing focus from the editor to my SSH session from time to time.

For a long time, UltraEdit was a Windows-only editor, but in recent years it’s become available for Linux and Mac, too. It’s very inexpensive for its many features, and can be downloaded as demoware so you can take it for a ride first and see how you like it.

EditPlus

EditPlus is very similar to UltraEdit and offers lots of the same features, but in a very lightweight manner—last time I checked, the complete executable was less than 2MB. Also like UltraEdit, EditPlus isn’t free, but it’s inexpensive. The drawback: It’s only available for Windows.

Notepad++

I’ve used Notepad++ the least and only when working on a computer that didn’t haveUltraEdit or EditPlus, since you can download Notepad++ for free.

To me, this editor falls somewhere between UltraEdit and EditPlus. It has many of the features developers look for in an editor, but still lacks others like column select and remote file editing. (update: combatchuck on reddit points out that you can use NppFTP for remote file editing and alt-click for column select). The look and feel also seem to be a little underdeveloped. Sometimes the editor seems like it’s just what the name states: an enhanced version of Windows Notepad application.

Sublime

As of this post Sublime Text is the new kid on the block, and it happens to be my favorite editor and the one I use most. It fits somewhere between vi/vim and EditPlus, small in size (between 5 and 7 MB), but very powerful and rich in features.

To me the best thing about Sublime Text is that it looks and feels pretty much the same on every OS (Windows, Mac, or Linux). There are some minor differences for doing certain things like line sorting and search-and-replace. When doing line sorting on a Windows system I need to use F5, but on a MAC I use F9. Also, When doing a search-and-replace, on a Windows system I use Control+H, but on a Mac I need to use Option+Command+F. Again, to me these things are minor and something that can easily be fixed with some custom key bindings.

What are your favorite editors? Any good recs for more that I should try?

Woody Torrez

About Woody Torrez

Woody Torrez has written 1 post(s) in this blog.

Facebook Twitter Pinterest Plusone Linkedin

One Response

  1. Greg says:

    I started using UltraEdit within a year of starting web development (back in 97), the direct FTP open / save, along with syntax highlighting was the selling point for me, and I liked Ian’s story how he started. I agree, over time, they were putting in everything but the kitchen sink.

    In 1999, I started programming in PHP, I forget when, but at some time i purchased Zend Studio pro. I loved the autocomplete (where most programs back then didn’t have it like now) I used that I think from version 3 up to 5.5. After 5.5, they stopped making it based off of Java, instead they started building upon Eclipse. I have tried every version since then, and well compared to what I was used to in 5.5, they all sucked (6 was extremely slow for me).

    I stayed working with Zend 5.5, dealing with needing to tweak video settings for Windows 7 to get it to run. Then where I was working, finally got off their duff about only installing dreamweaver for the number of licenses they had, and researched. Eclipse still sucked compared to Studio. They finally settled on Nushpere’s PhpED, This was in 2009 I think it was. This was the closest I had seen to Zend Studio, so I bought my own copy. It also has many built in features that are overkill (I use SecureCRT for SSH, and use Navicat for mySQL management instead of what is built in (I had both of those programs before I knew of other free alternatives)

    The IDE is really customizable, being able to do code insite (auto complete) not on just built in functions/variables, but also functions/classes/variables it sees in your project, and if you document correctly, will give you the use hints like built ins (this helped me improve my commenting) you can set up the code sniplet shortcuts similar to zend studio, although Zend let you set “variable” place holders in the code to tab between to and a final “end” position for the cursor.

    Not only do you have tabs across the top for files, you can setup both projects and workspaces. It will remember everything about the workspace when you close it, what files were open, the cursor position in each file, folded code settings, etc. Makes it nice that I can work on one project, jump over to another workspace, and then come back right where I was, all files for what I was working on good to go.

    It’s not free, but as a 10+ year programmer in PHP, I feel it is well worth it. Use on Mac/Linux is limited to either via Wine or Parallels (they have info on doing it on their site, I think with tutorials on doing it), so can’t say how good that is, but on a Windows, it is awesome.

    On top of this, their support, while may take a day to get back to you, every time I have contacted them has been excellent, and seems to take suggestions seriously as to things to add.

    Oh, one other thing, the IDE is not only aware of what type of code based on the extension (php/html/js/css) but can also tell the difference IN the files when you switch from one section to another. (ie, auto complete for HTML in HTML section, enter an opening PHP tag, now it is auto completing on PHP). Default install now will “grey out” code of different type than where you cursor is, (so if you are typing between PHP tags, it will syntax highlight PHP, and everything outside of PHP tags is one color. Myself, I prefer to shut that off and let it highlight everything.

Other Posts