Text Editors

Latest Update: Adding a link to our article on GTD with Emacs PlannerMode.


Who Needs a Good Text Editor?

  • Programmers – the traditional market for text editors is programmers – this explains the feature set of most editors. They’re not often designed around writing words so much as code. I don’t find this a problem, personally, especially since most of the text I write needs to be marked up in some way or another for publishing on the web – HTML, Markdown, Wiki-syntax, etc.
  • Writers – a good text editor can be a much more efficient way of getting your words into the computer, without too much formatting to distract you, than a word processor. I wrote more about this in my article on Text Editors for Writers. And by ‘writers’, I mean anyone who writes a lot – not just professional authors – it could be writing business reports, blog posts, articles for a web site, or even just emails to friends. If you enter a lot of text, you need a good way of doing it.
  • Geeks – even if you don’t do any actual programming, when you mess about with computers, you need to edit text files, and if you’re a geek, you probably care about your tools for doing so.

Types of Text Editors

There’s a broad range of different text editors, with different features, ranging from very simple little editors like Windows Notepad, all the way up to powerful, programmable beasts like Emacs. I like an editor at the feature-rich end of that, but for writing without distractions, something simpler may be better. My Text Editors for Writers article split them into three categories – simple, powerful and friendly, and powerful and unfriendly. In reality, there’s plenty of cross-over between the categories, but I think pretty much all popular editors fall into one of them. If it’s going to remain popular despite being unfriendly, it had better have some powerful features to keep people interested.

Specific Editors

Simple

  • Windows Notepad – if you’ve got Windows, you’ve already got Notepad, so it’s familiar to most people. It’s not got much power, but if all you need is something simple to get those words out of your head without distracting you, it does the job ok.
  • NanoNotepad – an editor from J Wynia designed especially for tackling NaNoWriMo – the National Novel Writing Month. Hardly any features, but has auto save, word count, and a countdown timer to tell you how long you have left to write your draft novel.

Powerful and Friendly

  • Notepad2 – one I used for quite a while – it’s not got the features of some others, but it’s nice and speedy, and quite simple to use. Not clogged up with too many features you’ll never use, but a good step up from Windows Notepad. Windows only.
  • Notepad++ – a bit more powerful than Notepad2, and I found this one to be a good balance for quite a while.
  • PSPad – still installed on my PC, and very powerful. More of a programmer’s editor than just a text editor, PSPad can even make a nice navigator panel for the PHP file you’re working in, listing all the variables, and giving you one-click access to the functions. Similar functions are available for many languages. If you do any programming, or even just dabble in PHP, this is an excellend editor. If I wasn’t keen to go cross-platform, I’d still be using it.

(A quick aside on cross-platform – you can skip this if you already know what it means. Most software is written to work on one specific computer platform – usually on just one operating system. So, Windows software doesn’t work on a Mac, and Linux software doesn’t work on Windows. Some programs are cross-platform – there are versions available for more than one OS. Sometimes, these are actually compiled for each OS, so they run natively, just like any other app. Sometimes they are cross-platform because they’re written to run on top of a layer like Java. Java apps tend to be slower and more memory-hungry than native apps, but getting an app to work natively on more than one OS is challenging. The advantage of a cross-platform app is that if you decide to switch to a different platform later, you can still use your favourite apps, so if I want to run Linux in a year or two, I can still run Firefox, Thunderbird and Vim. The disadvantage is that you limit your choice of apps, and some cross-platform apps don’t behave like the rest of your programs, because they were designed with a different platform in mind.)

  • jEdit – a java-based cross-platform text editor. Very extensible, and very powerful. A bit slower than most, but how many editors can include a web browser, an email client, and an IRC client? Unfortunately, it also crashed my computer. If it works ok on yours, this is an excellent editor.
  • MadEdit – a fairly simple-looking cross-platform editor. Runs native, no Java. Along similar lines to Notepad++ or Notepad2, it’s quite pleasantly easy to use, but has no shortage of features – including all the geek-friendly stuff for converting line ending types, hex mode and such like. I thought it was a bit on the ugly side at first, but turning off the display of line endings and spaces makes it look much nicer to me. Seems to be undergoing heavier development work than most others – this being just an early beta, there’s a lot of promise.

Powerful and Unfriendly

  • Vi and Vim – Vi is the old classic Unix editor, and if you ever see someone working with it who knows what they’re doing, you’ll be amazed. Once you’ve taken the time to learn Vi, it can be incredibly quick to use. Vim is a modernised version of Vi, and it’s cross-platform – available for almost every common OS out there. Vim also makes Vi a bit more friendly – your usual copy ‘n’ paste controls work again. The two modes of Vi make it difficult to get used to – you can’t just open a file and start typing, and once you’re typing, you can’t enter basic commands without switching back to command mode. Weird.
  • Emacs – the other classic Unix editor. Emacs doesn’t play well with other apps, as you have to remember a completely different set of keystrokes to use it, but it’s very powerful and programmable. Uses lots of key combinations to fit all the commands in, so you have to remember things like Ctrl-x then Ctrl-s to save, Ctrl-x them Ctrl-c to exit.

For a bit more comparison, see my article Vi and Emacs, or for a way of doing GTD with Emacs, see GTD with Emacs PlannerMode

Related Utilities

Mozex

Use Firefox? Wish you could use your chosen text editor to edit stuff that’s in a textarea box (the normal edit boxes for entering text into sites)? Well, you can. You need to use an extension called Mozex, which is still in development, but seems to be working ok. It’s not the easiest extension to set up, but it doesn’t hurt anything if it doesn’t work right. First, you need to install it from…

You’ll need to click the ‘install’ link first, then if you’ve never installed an extension from that site before, it will fail, and pop up a little bar at the top of the page telling you it was blocked – click the button on there, and ‘allow’ the site to install extensions. Then, just click the install link again. You’ll need to restart Firefox for the extension to load.

Mozex doesn’t have a lot of polish to the interface – to get to the settings, go to Tools, Extensions, click on Mozex, and click ‘Options’. The tab we want to set is ‘Textarea’, so select that. All you really need to enter is the ‘Text editor’ setting. I’m using Vim for this, and the command line for that is…

  • “c:\Program Files\Vim\vim70\gvim.exe” %t

You need the location of the .exe file to be in quotes, because there’s a space in there. The ” %t” is on the end, as that’s the way the file gets passed over to the editor.

I also set the ‘Hotkey’ – just click in the box, then press the key combination you want to use to bring up the editor. I used Ctrl-e.

Once all that is done, whenever the cursor is in a textarea box, just press Ctrl-e, and Vim (or your own preferred editor) will pop up to the front, and away you go. When you’ve done, save and exit in the usual way, and the textarea should get updated automatically. It’s worked flawlessly for me so far, though sometimes there’s a delay that can be worrying, if you’ve carried on working in Firefox at the same time and change to a different tab. For a bit of extra safety if you’ve done a lot of typing, just select all and copy before saving and exiting. If all goes wrong, then you can just select all in the text box and paste over it.

Which is the Editor for You?

I can’t really tell you that, but I can make a few recommendations.

  • If you are willing to put some real time in to learn an editor, in order to be able to work faster later, I’d try learning Vim. Vi is the fastest way of editing text, and Vim just makes it a bit easier to handle without losing much of what made the original so great.
  • If you are happy with a Windows-only editor, and you do any programming (including PHP and maybe even HTML), give PSPad a go. It works very reliably, it’s very customisable, and helps make coding a bit easier.
  • If you want cross-platform, and you don’t mind Java, jEdit is about as good as it can get. Look for the current beta version if you want soft line wrapping to window, though (what? Wrapping lines the way normal programs do – breaking at the edge of the window).
  • If you’re happy with Windows-ony and want something a bit simpler than PSPad, try Notepad++.

Which is the Editor for Me?

I haven’t entirely decided on that yet. I’ve spent time using many of the editors I’ve mentioned. If it hadn’t crashed my machine, I’d probably have been happy sticking with jEdit, but it did, so I’m not.

Right now, I’m working in Vim. It’s got enough approachable power that I can work in it right now (I’ve used it before, so I’m relatively used to the modes and key bindings), but there’s enough left over to know that the more time I spend learning it, the better it will get.

Comments are closed.