Random Geekery

Emacs Writegood Mode

Added by to Tools on

Tags · emacs ·

Logging Money In Org Mode Summer Reading
Emacs Writegood Mode
Emacs Writegood Mode
(see full size in new window)

I rushed through that post about logging money with org mode, and didn’t take much time to edit it. This bothers me. Today I went into writegood-mode to catch my sloppiest writing mistakes.


writegood-mode is a minor Emacs mode which highlights troublesome patterns in your writing. It looks for three patterns:

weasel words
A set of adverbs that add no meaning to the words they modify.
passive voice
sentences where the subject receives an action rather than performing it. Read this bit about passive voice. They explain it better.
duplicated words
“the the” is a common writing mistake, unless you’re talking about the band.

writegood-mode used a collection of bash scripts by Matt Might for inspiration.

Installing And Using It

Use the Emacs package manager to install writegood-mode.

M-x package-install writegood-mode

Enable it at any time with M-x writegood-mode. The documentation suggests you set a global command key to start writegood-mode more quickly, so I added that to init.el.

(global-set-key (kbd "C-c g") 'writegood-mode)

Adding a Hook

I must confess something to you. I installed writegood-mode months ago. I never remember to manually load it. Maybe add a hook to load it?

(add-hook 'markdown-mode-hook 'writegood-mode)

This ensures that at least Markdown blog posts are automatically checked.

Customizing Your Weasel Words

writegood-weasel-words contains a good starter collection of words and phrases to avoid. You can replace or extend this list with your own preferences.

(setq bmw/weasel-words
(setq writegood-weasel-words
      (-concat writegood-weasel-words bmw/weasel-words))

Today I just take the take the original list as-is and add my own list of weasel words. -concat from dash.el returns the result of concatenating two lists into a single list.

Readability Tests

writegood-mode provides readability tests based on Flesch-Kincaid.

(global-set-key (kbd "C-c C-g g") 'writegood-grade-level)
(global-set-key (kbd "C-c C-g e") 'writegood-reading-ease)
Test Score
Flesch-Kincaid grade level score 4.98
Flesch-Kincaid reading ease score 77.68

I write simply when possible, so these numbers please me. Readers can find highly technical writing at other sites.

That’s It

Professional writers have professional editors. The rest of us do not. A tool like writegood-mode cannot replace a professional editor. However, by highlighting common patterns of lazy writing, it can help us pay attention to our words while we write them.

Excuse me. I need to edit that other post.