When I'm typing fast, it's easy to make spelling mistakes (as you may have noticed reading Emacs-Fu). It's not so much that I don't know how to write things, but sometimes there seems to be a bit of a disconnect between brain and fingers.
One tool that helps me to make fewer mistakes is automatic spelling checking, and in particular on-the-fly spelling checking. Spell-checking in
emacs is taken care of by the
ispell-package. Traditionally, this was a way
to interface emacs with the
ispell-program on Unix, but nowadays it's often
used with other programs, such as
aspell is GNU's intended replacement for
ispell, and has been for a long
time. In the meantime, other spelling checkers have come up; in the Free
Software world, the most prominent one is probably hunspell, which is used by
e.g. Mozilla and OpenOffice. As I said, Emacs supports all of those; I'm using
aspell, which works well for me. To use
aspell for spelling-checking, I
have the following in my
(setq ispell-program-name "aspell" ispell-extra-args '("--sug-mode=ultra"))
Please consult the
aspell documentation for the details.
You can spell-check your text with
ispell-buffer and friends, which are also
available through the menu (
Tools/Spell Checking/...). This works fine, but
it makes spelling checking a separate step you have to go through and you may
forget. So, I like to do the spelling-checking on-the-fly, that is, while I
am typing. This can be done using
flyspell-mode (you can also use
flyspell-prog-mode, to do spell checking inside comments in computer
programs, but I find that a bit over the top).
flyspell-mode is enabled, it will mark
eh misspelled words by painting them in a different color while you are typing --
the common way many word processing programs do it. A common way to enable
flyspell-mode is to put it the the
mode-hook for the modes where you want
to use it. For example, to enable
flyspell-mode for all your
buffers, you can add something like the following to your
(add-hook 'org-mode-hook (lambda() (flyspell-mode 1)))
Note, you can use the middle mouse button to get alternatives for a misspelled word.
By default, it uses the English dictionary, but it's easy to switch to another
M-x ispell-change-dictionary. To make it easier, I have defined the
C-c N key binding to activate Dutch-language ("nederlands") spelling
checking, and update the buffer.
(global-set-key (kbd "C-c N") (lambda()(interactive) (ispell-change-dictionary "nederlands") (flyspell-buffer)))
Now, there's another category of mistakes – their-they're-there, its-it's or to-too-two that require a spelling checker that's a bit smarter. There are some free implementations in OpenOffice and Abiword; it'd be interesting to see if those could be integrated with emacs as well.
Now, laugh about the sweet irony of the spelling errors that I failed to notice :)