What is your favorite text editor?
When I polled my readers with the same question back in 2009, Vi won by a landslide. I’m not sure if it was because I skewed the results by stating my preference for that editor above the poll, or because it’s just that popular. But I can’t say I wasn’t pleased with these results.
There are many reasons to love Vi and Vim – the speed, the flexibility, the power. But among other things, it’s a perfect editor for an operating system nomad like me. I more or less share my computing time equally between three operating system: Windows, Ubuntu and OSX. In addition to that I also (as of lately) maintain a FreeBSD server. And you know what? Vim is the same everywhere. Whether I’m working on Windows, on Mac or on a headless server, via SSH session, the user experience is exactly the same. The Register published a fragment of interview with Billy Joy recently in which he explained how he wrote vi to be usable over 300 baud modem. It’s that kind of an editor – it works the same regardless environment, and connection speed. The only other editor that gives you a remotely similar kind of experience is Emacs. And I can’t say a bad word about Emacs – it’s a damn fine editor in it’s own right. Well, except maybe for this.
But I digress.
The funny thing about text editors is that most people never actually think about them, and don’t realize that there are choices beyond Word, Notepad and/or TextEdit. Programmers on the other hand are very peculiar about their editor choice. We often bicker about them, and judge people based on their editor preferences. But it kinda makes sense because a text editor is our primary work tool. That’s how we get things done, and using sub-par tool does impact our productivity, efficiency and ability to deliver code in a timely manner.
Hence, most advanced text editors are primarily targeted at programmers. Vim and Emacs are specifically designed for coding. You can of course use them for other things, but coding is what they excel at. In recent years however, there has appeared a new group of people interested in good text editing experience. People who also work with plain text files all day, but became disillusioned and frustrated by WYSIWYG tools like Word: creative writers.
Yes, fiction writers are leaving the MS Word universe in droves. And they should, because Word is a big, bloated, ugly and unstable disaster of a text editor. It works fine for typing out a short letter, or an interoffice memo – but it is incredibly lousy for just about anything else. Let me give you an example from where I work.
We have a medium sized document – a request list of sorts, that is about 4-6 pages long, and consist of an enumerated list of about 60-80 items. Some items are a single line. Some are an entire paragraph, and some have sub-list of 5-10 items, each of which can have 2-3 sub sub items. All in all it is not a hugely complicated document. The problem is that it has to be customized for each client – which involves adding and removing items, changing their orders and etc. This work is done by some office clerk, gets reviewed by his supervisor and then approved by a director. On average the document goes through 3-5 people and somewhere in that process the enumerated lists always, always break. The order becomes screwy, the items don’t align properly and etc. Inevitably it always ends up in the IT department where we have someone (usually an intern if we have one on loan) spend anywhere from 20 minutes to an hour fixing it. I could blame the clueless users for this, but I had to “fix” that document enough times to know that the issue is with the Word shoe-horns enumerated lists into WYSIWYG paradigm.
This, among other things is why I decided to write my Masters thesis in LaTex rather than Word. I spent enough time listening to friends bitch about Word eating up their thesis to realize that they spent about as much time fighting with the infernal software as doing research.
But this is not about Word alone. All WYSIWYG editors suck. Here is an account of an aspiring writer, who after being disillusioned with Word switched to Google Docs only to discover it is plagued by the exact same problems. That’s because all WYSIWYG editors suck. More and more writers are realizing that there are two ways to write:
- Choose WYSIWYG and be a part time writer an a full time MS Word wrangler
- Choose plain text and just write
WYSIWYG is supposed to make text editing easy and improve usability, but most of the time it simply becomes a distraction. A constant needling annoyance that forces you to do silly housekeeping task, when all you want is to put words on the page.
In the recent years, a new class of text editors emerged as a direct result of this frustration and disillusionment with Word and WYSIWYG: distraction free, full screen editors. There are dozens of these out there now. I think Q10 was the oldest and most mature of the pack, but it was WriteRoom and it’s Windows clone Dark Room that made this sort of style hip and fashionable.
All these editors share a similar philosophy and design principles: simplicity, minimalistic UI that does not get in the way, and emphasis on plain text to eliminate the text management nightmare of full fledged WYSIWYG editor. Some of them go overboard with the minimalism to my taste.
I’m not against bare bones, stripped down tools but there are few features I like to have in my editor:
- I find it hard to work without an inline spell-checker. Some people hate these, but I am a big fan.
- I like word count to be displayed somewhere in the status bar.
- I don’t like full screen editors because they hide the system clock which is something I need to look at from time to time
So I haven’t really been using any such editor for my creative work. I mostly do my world building and random idea dumps in vim, but I have been intrigued with these things for a while now. Not so long ago, Creative Bits ran a promotion on Clean Writer Pro and I was able to pick it up for free. I figured to give this distraction free writing thing a whirl. I must say it is a pretty neat Mac Store app.
It looks sleek, it has very unobtrusive UI and a windowed mode which is something I appreciate quite a bit:
A very spartan set of options allows you to set the width of the margins, enable inline spell check and set few other key preferences. There are not many options, so there is really no way to go overboard with these. You will probably visit the options screen once, and then forget about it forever:
Another neat feature I have noticed is that it automatically saves your work for you in a temporary buffer even if you neglect to do it yourself. When I was testing it, I would write some gibberish, force quit the app without saving and then re-open it to make another screen shot. To my surprise the my random gibberish was preserved every time even though I have never made an attempt to save it to a file. This is a very cool feature that will likely be a great boon to all those aspiring writers who always forget to hit the save button, and can never resist to click “Don’t Save” on a popup dialog when they see one.
When saving, Clean Writer Pro supports Plain Text, RTF, HTML and Markdown. The last one is a pleasant surprise, as I happen to be a markdown affectionado. As far as I can tell though, this option doesn’t really do much – after all Markdown files are text files, and the editor does not do any special syntax highlighting or previewing in .md files as opposed to .txt files.
Unlike many of plain text editors, Clean Writer Pro preserves version history buffer for your document. At any time, you can browse through all your previous saved version and revert to them at will. The interface to do this is actually really nice:
Now we programmers use source control for this sort of thing. People from outside of our industry however have a very faint concept of version control. Even though MS Word has this feature built in, I have never actually seen anyone using it. Perhaps because UI is cumbersome and counter intuitive and therefore scary. Clean Writer Pro presents it in a clean and visually attractive way – the neat little version slider is actually fun to play with. UI design does make a difference sometimes.
All in all, it is a really solid piece of software. Definitely worth $3 which is it’s current Mac Store price. My only problem with it is that it is a OSX app rather than a multi-platform thing. Since I constantly roam between operating systems, I could only spend a third of my time editing in Clean Writer. So I’ll probably stick with my Vim, but if you are a writer and you spend most of your time on a Mac, this app is worth checking out. It’s clean, it’s minimal and it saves and versions your work for you so you don’t have to think about it. A really good addition to the family of distraction free editors for non-programmers.
Vi/vim is my cross-platform shell-based editor of choice as well. It’s very simple to fire it up anywhere and I have taken it for granted that it will always be there on *nix and Cygwin’ed-dows.
But I usually use Notepad++ a lot as I’m mainly on a Windows machine at home and office.
@ Mart:
You can install Gvim on Windows though. It works quite nicely, and it even adds “Edit with Vim” to the windows context menu.
I tend to use Emacs for creative writing with org-mode and flyspell-mode to handle organization and spell checking for me. I wrote a quick script which computes the word count, not just total but for each word and displays it in a separate buffer so I can get an understanding of my current vocabulary usage. I use git for version control when I need it.
Actually, that always-saved with built-in version control feature is a part of Mac OS X Lion. It’s in applications like TextEdit as well.
I think the versioning you saw in Clean Writer Pro is simply the “Versions” feature of Mac OS 10.7.
You also have this on TextEdit and pretty much all the Apple © apps shipped with Lion.
@ astine:
Nice. That’s actually a really cool idea. I never thought about my word distribution and usage that way.
@ Morten & @ Gui13:
Thanks for clarifying this. I did not realize this was stock feature on Lion since I do most of my work in Vim or in the browser these days. It did look quite a bit more polished than the rest of the app – I should have figured it is a built in OS functionality..
I still use Darkroom, for some years now and I like it. For the missing system time (and battery state) I use a tiny sysmetrix overlay with something like 80×30 px in the same place the normal system time is normally shown.
I started, back in the day, on a dos program call TcPlus (and Tcpro) – I can’t even find anything on the tinternets about it. I still have an old IBM PS/1 that runs tcplus. I liked the simple interface, no distractions, and it did have a certain amount of features. Now I work in both windows and linux – so Vim it is for me.
All the reasons you mentioned why Vim rules are true for me.
I’ve recently been trying out Sublime text2. Must say, I’m quite impressed. It’s no replacement for Vim (although it does have a vim mode) – but it is really nice, clean and has a funky document overview type of thingy (minimap?!). Certainly worth a look at.
The only time I find vim a little awkward, is when I’m ssh-ing into a remote machine using my iPad. I use iSSH (fantastic program!!!!!), and using the ‘:’ and escape keys etc can be a little frustrating.
:wq
I’ve been using Sublime Text 2. I started using it as my default code editor on Windows since Notepad++ has ballooned from what it used to be then started using it on Ubuntu too. I found that Sublime works really well for writing also, so I have a project just for creative writing that I can open and have everything there. It has a lot of useful features like inline spellcheck, project folders, tabs, themes so I can darken text and the background and that wonderful previewed scrollbar for longer things as well as the full-screen distraction free mode (just your text).
A few years ago, went back to Vim, or MacVim, to be more precise. Does the full range of colors (I could never get the terminal based Vim (in Mac OS X) to do more than 16 colors) and has a little extra awesome sauce.
And Textmate still, as I find mucking up HTML and even writing more than a paragraph or two is best done in Textmate, especially with the helper snippets. For code though, I prefer MacVim.
Hey Luke, some great tools there I didn’t even know about! Thank you for sharing. I am using ommWriter. I’ve found another few more interesting apps at besttexteditor.com