My Freewrite Mode

I once read somewhere that P.G. Wodehouse wrote 2,000-3,000 words a day at his peak, but that number crept down to about 1,000 in his 90s, at the end of a long and highly productive career.

I’ve always been interested in the correlation between raw written output and success in writing. Is there such a correlation? If so, how does one encourage output and limit distraction?

There are many different strategies, including brainstorming, which I find interesting. One of the most productive forms of brainstorming, particularly for writing, is something called freewriting. I’ve experimented with this many times over the past few years. What I like is, you can do it on pen and paper, but also on a computer.

To that end, I wondered if there were any little tricks and dodges to encourage a freewriting habit in my text editor, where I do the majority of my writing.

So I devised a little way of doing this in Emacs. And this one I think I will share because it’s pretty basic and universal.

What is Freewriting?

If you don’t know what freewriting is: it’s a brainstorming technique for unlocking new ideas. It’s pretty simple. Goes something like this:

  1. Set a timer
  2. Start writing as quickly as you can without pausing or hesitating
  3. Stop when timer elapses

The key discipline of freewriting is to avoid the temptation to censor or edit yourself. Let the ideas flow without interruption.

It’s easier to do on paper. The only problem is when your hand starts to cramp up.

Most of us who work on keyboards for a living are fast typists. So our computers provide a good avenue for freewriting. However, it’s all too easy to smack that Backspace key, either because you made a typo or you simply don’t like what you just wrote.

Trying a Freewrite Mode In Emacs

To combat the temptation to backspace during a freewrite session, I’ve created a little minor mode for Emacs that disables the backspace key and triggers a beep and message when you hit it. (Though, the beep is not working on my computer, but the message appears just fine.)

Most of you Emacs adepts can probably think of more efficient way of achieving the same effect, but this is working nicely for me, and I like how the creation of the minor mode allows for future iterations.

I particularly like the message that flashes, “You can’t do that!” in the minibuffer.

(defun freewrite-backspace-warning ()
  "Warn the user with a beep and a message when backspace is pressed."
  (interactive)
  (beep) ;; Make the computer beep
  (message "You can't do that!")) ;; Display a warning message

(defvar freewrite-mode-map
  (let ((map (make-sparse-keymap)))
    (define-key map [backspace] #'freewrite-backspace-warning) ;; Remap backspace to custom function
    map)
  "Keymap for `freewrite-mode'.")

(define-minor-mode freewrite-mode
  "A minor mode where backspace is disabled, and a warning is shown instead."
  :lighter " FreeWrite"
  :keymap freewrite-mode-map)

(provide 'freewrite-mode)

Likewise, all you Emacs adepts know that there a dozen others ways to delete besides the backspace key. I’ve chosen the backspace key here because it’s the most reflexive reaction, I find. This little expedient has helped me up my word count and silence that ever present critical voice that gets in the way of composition.

For future iterations, I’d like to get a little Dennis Nedry popup to scold me.

Try it out, let me know if you have taken similar steps in your work to encourage output.

Be the first to comment

Leave a Reply

Your email address will not be published.


*