Vim: The Best Markdown Editor
Before I start writing any opinions here, I’d like to take a second to talk about why I think I’m qualified to say what the best markdown editor is; and what my criteria in choosing a markdown editor looks like. There is no shortage of blogs and articles out there that seek to answer this very question, so I wouldn’t expect anyone to just be taking my word for it, without knowing if my word has any value to you, or the way that you want to work.
Also, if you’re not familiar with Markdown, the rest of this will make no sense whatsoever. Sorry.
Who Am I To Judge
I write a lot of text. Which, I know, that alone isn’t really a qualification. What I do think is a qualification however, is the diversity of text that I work with, basically every day. I write an insane amount of text in this format. I routinely work with books, blog posts like this, notes, recipe cards, even my to-do list (when I use it) is a markdown file. I manipulate all of these types of markdown files, daily. This is important for two reasons:
- Exporting: I’m writing a lot of different things in Markdown, with the intention of exporting them to other formats. So I’m not just writing markdown. I routinely need to get markdown files formatted as HTML, PDFs, Word documents, and only occasionally (personal notes & GitHub) is markdown the final product. Of course that’s sort of one of the pillars of the language, so I think it’s important to be familiar with the way that this process works.
- Stress Testing: It’s very easy for me to tell, basically immediately if a markdown editor is, not up to snuff. I often have multiple files open at one time, and I routinely open up very large files. I have four or five documents that are somewhere between 100,000–200,000 words; which I need to open up every day. A lot of markdown editors, especially new ones, just won’t do this for me. They’ll freeze up, crash, chug, or find other more unique ways to make their usage miserable.
On a more final note: I have tried a ridiculous amount of Markdown apps, on every platform. Whether it be iOS, OSX, Linux, Windows, or BSD. Really the only platform which I haven’t done enough experimentation on to really say anything confidently, is Android. I don’t have anything against Android, it’s just that I sort of hate phones, and I don’t want to spend a ton of time on them. I have an iPhone just because that was the first smartphone that I bought, and I haven’t really messed around too much since then.
My Grading Criteria
I think that I have pretty high expectations for Markdown. I didn’t try to develop a stressful test to put editors through. I just have a pretty heavy workload, as a nature of the way that I like to work. Even before I started using Markdown, I was hitting Microsoft Word, or Google Sheets with very heavy workloads.
But this is, essentially, the criteria by which I grade a Markdown app. I like really nice looking, beautiful apps, but I’m totally fine using something a bit more ugly if it does the job better. I think most people feel the same way, but in my case I’m pretty good at figuring out quickly whether or not the pretty apps are even worth wasting my time with.
I also really care about an app being cross-platform. I really want to be able to use an app on at least MacOS and Linux; ideally Windows as well.
Feature Set (Export, Templates, ext.)
I over-looked this for a really long time. But being able to export quickly and easily, to a lot of different formats is sort of a must, for a good markdown editor. More than just being able to export to PDF or Word, I’m also looking for editors that will support a lot of customization in this department as well. Being able to browse a lot of pre-made templates, and being able to create custom templates myself is a huge bonus.
There’s not a lot to say about his category. I want to be able to write and manipulate text quickly. If that requires some additional learning (keyboard shortcuts and whatnot) that’s totally fine.
Finally, I’ve taken into account the launch time. Not just for the app itself, but for the opening of files once the application is open, and the switching between files. This, I think should be pretty self-explanatory. Obviously Photoshop is the gold standard for photo editing, but it takes so long to launch, in comparison to other apps; that I’m probably not opening up Photoshop just to crop an image or something. Being able to just launch an app when you launch your computer and leave it open is one thing. But that’s not really a good way to get around a slow launch time. A slow launch time for the app, almost always means a slow loading time when opening files. Also apps crash, and sometimes you have to restart, and I don’t want to be sitting around waiting for Photoshop to open, when I can rotate an image from Finder.
There are two apps that I want to talk about today, and the first of which is Vim. This is a very old app, originally released in 1991; and based on an even older text editor, Vi that’s been around since the mid-seventies. I’m going to wager that a good chunk of the markdown crowd has never heard of Vim, and that’s because, despite being a wickedly fast and powerful text editor, Vim has never really caught on with a lot of writing communities. Vim actually really thrives, almost exclusively, in the Linux and BSD world, which is of course where I found it.
So the first thing to mention is that Vim checks four of the five boxes on my criteria better than any app I have ever used. I’m not trying to be hyperbolic, I’m being honest. The launch time, both for files and the app itself is instant. Again, it may sound like I’m being hyperbolic, but I’m 100% serious. It doesn’t matter whether I’m opening up a list of 10 names, or a 150,000 word novel, Vim launches immediately. This is because of the fact that Vim, at least in the form that I use it, and recommend people use it, is a command line application.
This is why Vim has yet to take off, among writers, the way that I believe it should have. Vim has a learning curve, and a lot of mythology around that learning curve. People who use Vim daily will ward off new users, because it’s not for just anyone. This mythology is the main reason why I stayed away from Vim for as long as I did. I was constantly being told by people who used Vim everyday, not to mess around with it.
But the truth is, Vim’s brutal learning curve is conquered in about a week, mostly a weekend in my case. But, you will actually be slower in Vim when you first start. Which is a very odd and off-putting thing. You’re typical learning curve for any piece of software is a nice gentle upwards curve. But when using Vim you will quite literally start typing at a fairly normal speed, get way slower for a brief period of time, and then become faster in Vim than any other application you’ve ever used. This is mostly due to the fact that vim does not utilize your computer’s mouse. Vim, or at least Vi, was built at a time before the mouse was really a thing. Everything was then, and is still now, done via the keyboard.
This is Vim’s real strength. If you think about it, you can only ever type in any application, as fast as your fingers will go. If I type 80 WPM in Microsoft Word, I won’t type 100 WPM in Vim. The real strength of any text editor is it’s ability to manipulate text. Markdown takes care of a lot of the basic formatting for us, which is why writing Markdown probably already feels fast and more efficient than anything else. But if Markdown handles formatting, Vim handles everything else. You can correct words, spell check, delete, re-write, change and manipulate text in a matter of seconds using Vim. Vim has movement controls to navigate by line, paragraph, sentence, word, and all the way down to the individual characters, and it’s all done without ever moving your fingers from the home row. Most Vim users I know of actually disable arrow keys to force themselves to use Vim’s alternative arrow keys: h,j,k,l (the real pros even disable the backspace).
However, as much as I like Vim, and I really do use Vim for basically everything, the app does have a glaring weakness. Vim is an app that is only interested in being one thing, a text editor. It’s designed to allow you to write and manipulate whatever kind of text you need to work with, as quickly and efficiently as possible. Even Vim’s closest competitor, Emacs, does much much more out of the box than Vim. By default in Vim, something as basic as spell checking is turned off. Vim write and edits text. That’s all.
So, in some ways it really shouldn’t even be considered a contender for the top spot on my list of Markdown editors, as it miserably fails on one point of criteria. Vim does not export to anything. You have to find an alternative solution for exporting Markdown. But this should say a lot about the quality of the text editing experience that you’ll get with Vim. It just straight up doesn’t even try to work with Markdown, and yet I still call it the best text editor for Markdown. I hope this makes since to people who’ve never used Vim before, as that’s the target audience for this post.
Anyway I recommend Typora as an alternative tool for exporting Markdown to other formats. It’s not as pretty as something like Ulysses or IA Writer, but it does pretty much all the same stuff, and it runs on more than just MacOS. Typora runs on Linux, MacOS, Windows and is really easy to install. (That’s might not make since if you run MacOS or Windows, but any Linux users will know that depending on you’re distribution some apps can actually be pretty difficult to install).
Typora is a really good graphical editor. I’ve never had much of an issue in terms of reliability, and it handles my 100,000+ word documents absolutely fine. So if you’re not going to use Vim, and you’re not on MacOS; Typora really is the way to go. But even if you’re using Vim as you’re primary editor, Typora will be very helpful for you.
First of all, Typora will actually allow you to export to alternative formats. HTML, PDF, Word, Epub, ext, you can convert Markdown to anything else you might need very quickly and easily. But what I really thinks Typora stand out are two thing:
- Simplicity: Like Vim, Typora does seem to be built to do one thing, and do it better than anything else. Typora is a markdown editor, and it’s built to edit markdown as quickly as possible. There aren’t any crazy UI elements that get in the way, it has a very simple layout. Of course the simplicity is sort of misleading, because it’s very powerful under the hood, as you might expect; and maintains the useful feature-sets of any other Markdown editors I’ve used.
- Customization: Not only does Typora have it’s own Theme Gallery that allows user submission, it also allows for easy, custom, theming. Typora’s themes are powered by CSS, a language that is easy to learn, if you don’t already know it, and even easier to manipulate even if you don’t. I imagine it would be very easy for a committed tinkerer to create custom Typora themes for their projects without every intentionally setting out to learn CSS.
Also it’s free!
iOS & Alternatives
Finally I wanted to talk just a little bit on about the scene on iOS. As mentioned earlier, I can’t really speak to the availability of good Markdown apps on Android, so I won’t try. (That being said IA Writer is very good on iOS & MacOS, and does have an Android app available).
But the iOS editing scene is not awful. Editing Markdown on a phone is a pretty bad time, and I really only use any of these apps on a phone to review things I’ve already written. So just keep in mind that the main focus here is on iPad OS; that being said I’m not going to recommend an app if it’s great on iPad OS, but like unusable on iOS or something like that.
My first recommendation is Ulysses. To my knowledge this is one of the older apps built around editing markdown, and it’s maturity really shows. Ulysses is a very simple and straight forward app, with a super robust feature set that really appeals to people who spend their days writing. There are not flames painted on the side just because it’s cool, so to speak. Ulysses is available on iOS, iPad OS, and MacOS. It also exports to everything you could want, though making custom themes is a bit trickier than I’d like it to be. It’s not really difficult to do, it’s just not as easy as using Typora.
Also for what it’s worth, every time I’ve had any kind of problem, I’ve had really great experiences with the Ulysses support team on Twitter.
But Ulysses uses a subscription based pricing model, so if you’re not into that, my next recommendation would be IA Writer, an app that is remarkably similar to Ulysses, but is a bit more cross-platform, and charges a flat fee.
Finally, if you’re looking for something good on iOS, my recommendation is Editorial. I think the price is a bit lower than everything else, but it’s all around pretty nice to use. There’s a bit of a bug with the dark mode right now, though I expect that should be fixed soon. But this app also supports editing TaskPaper, Fountain & Python, so that’s pretty great.
- Vim | Free | Available on MacOS, iOS, iPad OS, Linux, BSD, Android & Windows
- Typora | Free | Available on MacOS, iOS, iPad OS, Linux, BSD, Android & Windows
- Ulysses | $4.99/month or $39.99/year USD (Also available with SetApp) | Available on MacOS, iOS & iPad OS
- IA Writer | $29.99 for Mac, $8.99 for iOS & iPad OS, $19.99 on Windows & Only a free trial is available on Android at the moment USD | Available on MacOS, iOS, iPad OS, Android & Windows
- Editorial | $5.99 USD | Available on iOS