.. _choosing-editor: ################## 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. If you do learn your text editor well, you will find yourself using it for many different tasks, including editing code, documents and configuration files. 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. No doubt you want to know what your instructors use? No? Well, in any case, the answer is that Matthew and JB use vim, and Stéfan uses emacs. *** 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. If you do invest this effort, vim is an immensely satisfying editor to use, because you quickly find that your fingers remember what to do. A programmer's joke about vim is that "the cursor follows your eyes", because your fingers are moving the cursor around the text without any apparent thought or effort on your part. It is relatively complicated to configure vim 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 by very fluent movement and editing. Emacs hard to configure, largely because it is so powerful. We are very happy to help with this if you are interested. ************************************* Other editors that you might consider ************************************* We will support these editors too for anyone who wants to use them. If you prefer another editor, we will help as best we can. This suggested set of editors comes from the top four editors from `text editor competition`_ with the addition of TextMate (because we know at least one extremely efficient coder who uses it). For any platform ================ Some people really like `Sublime text`_. It is free to try, and the trial version does not expire, but if you continue to use it, the authors ask you to buy a license for 70 USD. 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`_. For Windows =========== `Notepad++`_ seems to be a Windows favorite. ************ Suggestions? ************ If you have any other suggestions or recommendations, please let us know. .. include:: links_names.inc