Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Improve Emacs flyspell responsiveness using idle timers
Emacs Lisp Makefile
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
ert-tests
.gitignore
.travis.yml
Makefile
README.markdown
flyspell-lazy.el

README.markdown

Build Status

Overview

Improve Emacs flyspell responsiveness using idle timers.

Quickstart

(require 'flyspell-lazy)

(flyspell-lazy-mode 1)

(flyspell-mode 1)      ; or (flyspell-prog-mode)

Explanation

This package is only useful if you are experiencing performance issues with Emacs' built-in flyspell-mode. Specifically, keyboard responsiveness was significantly degraded on OS X before GNU Emacs 24.3. See this (now resolved) bug:

http://debbugs.gnu.org/cgi/bugreport.cgi?bug=2056

This package reduces the amount of work done by flyspell. Instead of checking instantly as you type, spelling will be checked when Emacs has been idle for a short time. (Vanilla flyspell-mode does not use idle timers but a subtle combination of hooks and sit-for.)

This package also forces flyspell-mode off completely for certain buffers.

To use this library, add the following to your ~/.emacs file

(require 'flyspell-lazy)
(flyspell-lazy-mode 1)

Then use flyspell-mode as you normally would. This package does not load flyspell for you.

flyspell-lazy-mode will invoke spellcheck less frequently than vanilla flyspell-mode, though this can be changed somewhat via customize.

Notes

If you are using aspell instead of ispell on the backend, the following setting may improve performance:

(add-to-list 'ispell-extra-args "--sug-mode=ultra")

Compatibility and Requirements

GNU Emacs version 24.4-devel     : yes, at the time of writing
GNU Emacs version 24.3           : yes
GNU Emacs version 23.3           : yes
GNU Emacs version 22.2           : yes, with some limitations
GNU Emacs version 21.x and lower : unknown

No external dependencies

Something went wrong with that request. Please try again.