I have a growing affection for Vim. It might be a 20-year-old piece of software. It might have a ridiculous learning curve based on concepts, like modal editing, that seem extremely foreign in an age of touch screens, OSX 10.8, Windows 8, etc. It might not look elegant, or even usable. But, it’s seductive. And maddening. It’s customizable to the nth degree. And because of that, it’s easy to drown.
I’ve been doing most of my writing, coding, notetaking, and other work in Vim for a few months now. There has been a slow accretion of wisdom and workflow, and muscle memory. (I frequently find myself reaching for Vim keyboard shortcuts when using other text editors or word processors, and find myself frustrated when they don’t work.)
I’m going to start posting an irregular series of posts on using Vim for the kind of long-form writing historians and other humanists do. In part, I’m doing this because I learn a tool better when I write about it. (That was certainly the case with Devonthink.) In part it’s because Vim gets better with customization, and when ever I move to a new machine I forget half the things I’ve done, or how I did them. So, it’s also an exercise in personal archiving.
My favorite tool for writing has long been Scrivener. What I most like about Scrivener is the ability to split the screen and view source material as I write, and export to a variety of file formats of a finished draft from its constituent parts. I also like its file navigation and little bits like distraction-free writing mode. I’m less interested in its summarization and the many complex forms of metadata one can add to files. Another thing I don’t like about Scrivener is that the package contains full copies of all the files in one’s research folder, as opposed to symlinks. This means for a large research project you can end up with a very large file, and one that is duplicative. With a few plugins, Vim can easily handle many of the things that I like about Scrivener (if not most). There are a few bumps in the road, though.
Most of my research files, notes, etc. are text files. But, of course, as an academic, I also have tons of pdfs and legacy files in .doc or .docx. These files are, obviously, not accessible by vim. I’m working on a couple of lugins that will make them accessible by converting their contents to text or markdown automatically with filetype detection. (As it stands now, using NERDTree, it’s easy to open these files in their external system editors (Word, Preview, etc.). At any rate, what do I want from a Vim Scrivener set up?
- multilingual spell checking
- file navigation
- split screen editing
- PDF text layer viewing
- web page downloading/markdown conversion
- export to pdf, docx, or rtf
- sensible line wrapping
- directory search
Much of this is already available from Vim and a few good plugins. So, I’m going to start an irregular series of posts for the Vim Humanist on how to customize Vim for our writing and research needs. If you have ideas or tricks, let me know and I’ll include them in the series.