Choosing an editor

Being efficient means being able to use your tools well. If you are fluent in using your editor, you will be able think better. You will do better work more quickly and you will make fewer mistakes.

This is particularly so for a text file editor. Bear in mind that you will likely spend many hundreds of hours using this editor for various parts of your work over the rest of your career. Be careful with your choice, and consider investing time to learn an editor well.

Programmers are a strange bunch of people who are extremely intolerant of tools that waste their time or energy. Take their impatience seriously when you consider choosing your editor. No programmer would use Windows Notepad for writing code, and that is for a very good reason.

The two most well-known and fully-featured cross-platform general text editors are emacs and vim / gvim. These run on any platform.

vim

Vim is based on a classic Unix editor called vi. To quote from the about vim page:

Vim isn’t an editor designed to hold its users’ hands. It is a tool, the use of which must be learned.

To use Vim well, you have to practice using its commands, by following any one of several online tutorials. For example, you might try the openvim tutorial. The trick is to teach your fingers what to do so you don’t think about it any more. This takes a long time, budget a week of 30 minutes a day to start to feel comfortable.

It is relatively complicated to configure to its full potential. Please ask for help if you are interested to do this. It is time well spent.

Emacs

Emacs is a classic and highly configurable text editor originally written by the great Richard Stallman. It is quicker to learn than vim, probably harder to configure, and has great power. A good place to start is the emacs tour. About an hour of research and practice gets you far enough to learn how to start learning emacs.

As for vim, to use it well, it needs some practice to get used to the keystrokes used, and as for vim, this practice is amply repaid.

Other editors that you might consider

For any platform

gedit appears to be a popular choice which works on Linux, Windows and OSX.

If you are running Linux, you may well have gedit installed on your system. If not, you can install it with (Ubuntu / Debian : sudo apt-get install gedit, Fedora etc : yum install gedit.

For OSX

textmate has some very serious enthusiasts among people who know what they are doing on OSX. There’s a free textmate download for UC Berkeley.

Other options for OSX that we have heard recommended are Text Wrangler or Sublime Text.

For Windows

Notepad++ seems to be a favorite.

Suggestions

If you have any other suggestions or recommendations, please let us know.