For many years I have been trying to find a good text editor for writing fiction. I have used Scrivener, Ulysses and others but they seem slow and you always reach the point where you want things to behave differently and you can't.

I have tried Vim and Emacs in the past but didn't go too deep into packages or settings to create the perfect environment. I have tried "Writeroom" modes that make the buffer distraction free but this is just one piece of the puzzle.

The main thing writers need is to organize structure. I find that Ulysses 3 is the closest to getting it right. You write small chunks of text and then you can arrange them in any order you want on a sidebar.

Ulysses showing list of sections and text of selected section

The problem is that it's Mac only and not very programmable.

I am surprised there is no open source option for something like this. Is this possible on Emacs? I have seen sidebars but none allow you to read a bunch of text files and then order in any way you want.

  • 1
    I know it isn't exactly what you are looking for, but how about using LaTeX? If easy reorganisation is what you are looking for, then LaTeX would certainly allow you to play with includes, comment out some sentences, or have them back. Heck, you can even combine it with some version control software to get history of your modifications. Commented Jul 8, 2015 at 8:38
  • @bilbo_pingouin The problem with LaTeX (and Markup, for that matter) is that as a writer you need to see the text as it will appear in print. Text is not spoken language, but written language, and written language is visual. The exact width of the margins may not matter, nor does the font of the final publication, but italics or indentations need to be visible to the writer, because they influence composition. A "writing" software like Ulysses, that does not visualize text styling, is maybe useful for programmers-turned-writers, but not for the common wordsmith.
    – user5645
    Commented Jul 8, 2015 at 10:13
  • @what I'd certainly be in that programmers-turned writers category. Now, the graphical output of your writings DO depend a lot on font, layout, etc. In Latex, you might add all the indent you want and make them appear in your printed text. And it's up to your editor to actually show italic text... in italic. So, you graphically loose a bit with some unnecessary commands here and there, but I would expect that in most fictions that would be somewhat limited. But this is why it was a comment not an answer :-) Commented Jul 8, 2015 at 10:19
  • I actually wrote my very first stories and novels in Adobe PageMaker, a now defunct desktop publishing software, using a font that I had bought to print my texts in. I designed the page before I wrote the text, much as I would write into a paper notebook, whose format exist before writing. This approach worked, because I wrote (and still write) in a linear fashion, from beginning to end. Basically, writing at a computer was just like writing in an editable notebook for me. I was writing the printed book, not a text that would be printed.
    – user5645
    Commented Jul 8, 2015 at 10:31

4 Answers 4


I recently addressed this question over at the Stackexchange Emacs site, but that post is more geared toward Emacs users. I'll say a couple of things here about general advantages/challenges of this platform for people who might be less familiar with it. As a sidenote, my most recent novel was written using Emacs.


  • Learning Curve : Emacs has a steep learning curve, and most users do a lot of customization of the basic features over time. I'm not a programmer, but a literary person. I started with an unmodified "vanilla Emacs," and struggled. Emacs did not by default even wrap lines--each line just went straight on, right off the screen. If I was starting over today, I'd seriously consider installing one of the amped-up versions that community members create, such as Emacs Prelude, that comes bundled with many commonly used packages. (Perhaps one day I'll make one of these for creative writers, but I'm not there yet.) Even so, Emacs will take time to learn. I didn't feel comfortable with it until I'd been using it heavily every day for about six months (and my general level of computer literacy was improved as a contingent benefit).

  • Text Editing vs. Word Processing : Emacs is a text editor, not a word processor, so it's missing some functionality writers might expect, such as pagination and headers and footers. When I have to communicate with a publisher about what I'm doing, I'll often export my work to .odt (Libreoffice) and then to .doc (Word), which is a little inconvenient, but I put up with it.


  • org-mode : This is an Emacs mode for organizing lists, and it's the reason I tried Emacs out in the first place. It works beautifully for large, complex manuscripts because it allows you to create heirarchies, all in plain text. Here's a screenshot of my environment: Emacs Screenshot

    These sections can be 'folded' and unfolded at will, and they can be shuffled around at will, too, all with keyboard shortcuts. Want to switch chapter 2 and chapter 10? Easy. Want to see the chapter titles only, and not the content? Scenes? Only some chapters and not others? You can do that, too. org-mode also supports the use of a keyword called TODO, for things you're working on. I use this to organize things I need to remember. You can also create COMMENT sections, which won't be exported, when you export.

  • Text editing Though it's somewhat of a disadvantage to miss out on the more design-oriented features of a word processor, I will say that a text editor is amazing at editing text. Every control is on the keyboard. I never touch a mouse or trackpad when I'm in Emacs, and there are also often multiple ways to achieve the same goal, which has been good for my arthritis. There's great search functionality, and abilities I'd never seen in a word processor, such as:

    ALT-t will transpose words. Put the cursor between the words "cats bats", hit ALT-t and you will have "bats cats".

    ALT-k will delete from your cursor to the end of a sentence.

    You can capitalize words with ALT-c or uppercase them with ALT-u.

    Emacs keeps track of everything you ever cut and paste during a session, and holds it in its kill ring. If you cut text1, and then text2, and then text3, and now want to paste text1, or text2, or text3, you can do it easily.

    There are many, many more conveniences along these lines.

  • Git with Magit

    I'd wanted to learn version control, specifically with Git. Git, like Emacs, is an amazing system that is used by programmers more than other kinds of writers. It also has a learning curve, but Emacs interfaces with it using a utility called Magit, which is very convenient. I can log into Bitbucket (where I keep my files), upload versions, look at file histories, etc, all from within Emacs.

  • To Sum

    I've enjoyed using Emacs so far, but I still have a long way to go. I frequently hear about other ways of doing things, and suspect that in five years I'll have different ideas about what works and what doesn't. Nonetheless, I've been remarkably productive with this software. Oh, and if you've ever been angered because MSWord crashed on you, well, I have never seen Emacs crash yet (YMMV...).

  • I ended up using orgmode and the "narrow" feature to focus on the piece at a time. I started with prelude but found the startup time too slow. Also, the config is so big that you dont know where to find things or how they are called, what's default behaviour, what they changed etc. I ended up starting from scratch.
    – Jason Mirk
    Commented Jul 31, 2015 at 11:13
  • Interesting that Prelude is slow on startup; I haven't actually tried it, and only know it by reputation. Of course, having to cobble together my own setup did teach me a lot, too, about how Emacs works. Glad you've found your editor! Commented Jul 31, 2015 at 16:57
  • M-x ^visual-line-mode will give you a nice word-wrap. Comes with modern Emacs by default.
    – Jacob Lee
    Commented Feb 27, 2021 at 3:48
  • I write in markdown. Using pandoc, you can export to docx format using a template. autodidacts.io/…
    – Jacob Lee
    Commented Feb 27, 2021 at 3:51

A modular approach offers the most flexibility.

The problem is that every book I write I do it differently, and no software is flexible enough to both offer all possible options and be free of clutter. I use a mix of taking notes in paper notebooks, outlining on loose paper and small file cards (with the help of scissors, glue, colored markers and a large floor – a very sensual and fun process), writing in a text editor (TextWrangler) and writing and rewriting in Scrivener. I have also used Aeon Timeline, Excel, HTML files (edited in an editor and viewed in a browser), photographs, and other applications and media to help me alongside my paper/editor/Scrivener core apps.

If you want a software that exactly fits your personal writing style, you need to program it yourself – possibly a new one for every new book that you approach differently. The more flexible approach is modular, using different software for the different tasks you need done. This is not a costly approach, since a lot of the software you'll need is either free and open source, or obscenely cheap.

  • Makes sense. That's why I am inclined to use Emacs. It's programmable after all. I have switched editors many times in the past 10 years and want to setup something that I can use for the rest of my life.
    – Jason Mirk
    Commented Jul 8, 2015 at 14:23

As someone who also gets frustrated at the layers of complexity that are inherent in modern packages and often falls back to notepad as a means of just getting down to a basic editor I did particular enjoy the thought of doing any sort of creative writing in vim. (that would be impressively hardcore!)

So I've particularly enjoyed this question (I should probably upvote it for that) it occurred to me that maybe a good editor for doing this stuff in would be atom A text editor created by the creator of github. as stated on their blurb page...

Atom is a text editor that's modern, approachable, yet hackable to the core—a tool you can customize to do anything but also use productively without ever touching a config file.

The core idea of atom is that it is a desktop editor based on web technologies. So it is all built as HTML / CSS with themes and packages that are (apparently!) easy to build, share, transfer. It also runs on Linux, Windows and Mac. You could actually end up with a piece of software that stored its data on github (etc) and had an identical look and feel no matter what OS you were on.

I actually think it could be made into a fully fledged piece of creative writing software, that would have the power to give any of the mainstream pieces of software a decent challenge. (so if anyone wants to start an open source project, maybe we could get together...)

I'm actually writing this in it now, and it is surprisingly nice to compose in. (or decompose, depending on your mood) In the time I've written this message, I think I may have found my new editor - for the time being anyway.

Its worth a look.

  • Thanks. This has been in my mind too. Using their electron shell. Emacs and vim take such a long time to customize to get the very basics going.
    – Jason Mirk
    Commented Jul 8, 2015 at 20:28
  • I know it's an old post and Atom has been growing in the meantime. Do you still write in Atom? Do you know of any open source project of the kind you described here? What capabilities would you like to see to make it a "fully fledged piece of creative writing software"?
    – ba_ul
    Commented Dec 12, 2016 at 20:50

I don't know much about Ulysses, so I hope my answer will be germane.

1) Have you tried folding text with vim?

There are various ways to do this. Type :help folds. I use triple brackets around the folded text. {{{Chapter One Blah, blah, blah...End of Chapter One}}}

You fold the text by typing zo in normal mode and close by typing zc. There are other folding commands. You can open all folds, close all folds, etc.

Let's say you have a 100,000 word work in progress, divided into twenty chapters. You can fold all the chapters, and all you see on your screen are twenty lines of text, one for each chapter. You can delete a "line" (really a folded chapter) with dd in normal mode, move within the document, and put the chapter in the new spot with p. It's faster than a mouse when you get used to it.

You can nest folds, so within a chapter you can have scenes folded, within scenes sections folded, and so on, so that when you "unfold a chapter" you're presented with folded scenes which you can reorder, within scenes folded sections that you can move around, and so on.

The line that represents folded text is the first line of text within that fold, so you can name things whatever you want, "Chapter One" or "This is the scene with Beelzebub still sucks, work on tomorrow..." etc.

My opinion, without wanting to provoke the inevitable reaction, is that vim is far superior to emacs for writing prose, because most of what prose writers do is edit, not write prose. And for editing, vim's normal mode is worth it's weight in gold. It just runs rings around emacs for quick movements, rearrangements, reordering, and so on from the home row.

When you're done writing, type :% s/[{{{|}}}]//g or similar to get rid of all folds.

2) Libreoffice will also do what you want, via the navigator.

You can label which bits of text you want to move around using headings.

Let's say you have written this:

My first awesome scene!

Blah, blah, blah.

My second awesome scene! Really funny!

Chortle, chortle, chortle.

Use the pull-down paragraph style menu and give your titles a heading style.

My first awesome scene! (<- Heading 1 style or similar.)

Blah, blah, blah.

My second awesome scene! Really funny! (<- Heading 1 style or similar.)

Chortle, chortle, chortle.

Now bring up the navigator, F5.

Click on Headings if its not already selected.

You should see "My first awesome scene!" and "My second awesome scene! Really funny!"

Reorder them using the up and down arrow in the top row of the symbols bar. The text below them, up to the next heading of the same type, will move along with them. Couldn't be easier.

You can nest this effect, with Heading 1 being top level, Heading 2 being next level, and so on. There are 10 levels, so you can make an outline with ten levels of complexity. It's an awesome tool.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.