8

A. Is there a spellchecker built in to Emacs?

This seems to say that there is a "built-in ispell package" that "handles spell-checking and correction".

The manual (Emacs > Fixit > Spelling > 16.4) makes it sound like nothing is built in: "These commands only work if the spelling checker program Aspell, Ispell or Hunspell is installed. These programs are not part of Emacs, but one of them is usually installed in GNU/Linux and other free operating systems."

B. If there is a spellchecker built in to Emacs, how do I use it? The commands in the manual (Emacs > Fixit > Spelling > 16.4) do not work.

When I try "M-x ispell", I get this:

Starting new Ispell process ispell with default dictionary... apply: Searching for program: no such file or directory, ispell

C. If there is not a spellchecker built in to Emacs, what is the most simple way to get one working on a Windows 8 or 10 machine? I don't even care about "on-the-fly" spellchecking. I'd be happy with being able to type a command and have the spellchecker check the buffer.

Thanks!

Carl Roberts
  • 433
  • 2
  • 12
  • 1
    "A built-in ispell package" means that there is a built-in emacs *package* that handles spelling; but this built-in package (i.e. that comes with emacs) *does* need one of the external programs: ispell, aspell or hunspell. You will have to take your pick, let's say 'hunspell', and try to install it and add it to Windows' PATH, so that any program can then find it (emacs included). – VanLaser Nov 01 '16 at 22:08
  • 1
    If you want spell checking *on the fly* (as opposed to invoking it as a separate step), you might prefer the `flyspell` minor mode (which uses the same infrastructure as `ispell`. – dmckee --- ex-moderator kitten Nov 02 '16 at 02:47
  • 1
    This is similar to, say, `ediff`: it is a builtin package that shows differences between files or buffers, but it uses an external program called `diff` to compute those differences. I find that on Windows, along with Emacs I also want to install `diff`, `grep`, `find` and a spellchecker (I use `aspell`). With just those four programs Emacs on Windows feels almost the same to me as on Linux! – Omar Nov 02 '16 at 16:56

1 Answers1

7

Quote from Emacs manual:

16.4 Checking and Correcting Spelling

This section describes the commands to check the spelling of a single word or of a portion of a buffer. These commands only work if the spelling checker program Aspell, Ispell or Hunspell is installed. These programs are not part of Emacs, but one of them is usually installed in GNU/Linux and other free operating systems.

You have to install and configure the binaries separately.

Hunspell

  1. Eli Zaretskii's Port: Version 1.3.2 (32bit) is not the latest version, but it is safe to assume that this one works with Emacs.
  2. Msys2: You have to install Msys2 first and then Hunspell version 1.4.1 through pacman. Depending on your OS, you can have a 32 or 64bit version.
  3. Cygwin: You have to install Cygwin first and then Hunspell through their package manager.

Aspell

  1. Msys2: Again, with Msys2 you can have Aspell version 0.60.7
  2. Cygwin: With Cygwin, you can have version 0.60.6.1 or
  3. Official site: An outdated version (Released Dec 22, 2002)

Ispell

  1. W32TeX: Ispell version 3.4. is distributed along with W32TeX, you can get the binary as a separate download.

What to use?

This is not answered easily: Aspell's development has stalled, but it does a good job for English language. Ispell's development is going forward after a long halt, if you're old school, you want to go with it. Hunspell is under development and new versions appear from time to time.

Hunspell has the feature that you can combine multiple dictionaries. This feature is supported by ispell.el shipped with Emacs 25.

I use Msys2 and Hunspell.

Arash Esbati
  • 1,795
  • 1
  • 8
  • 13
  • `aspell` is also available through the cygwin package manager. – Tobias Nov 02 '16 at 14:22
  • @Tobias - Thanks. I updated my answer. – Arash Esbati Nov 02 '16 at 14:29
  • 1
    @arashesbati So it sounds like Hunspell, Aspell, Ispell, etc., are separate _programs_ from Emacs? The _package_ that is built in to Emacs is there to communicate with separate spellcheck _programs_? If so, the answer to Question A in my question is "No." While your excellent answer did not specifically say which is the "most simple" to implement, I realize that "most simple" is subjective and depends on numerous factors. So I am agreeing that you have answered my questions. Thanks! – Carl Roberts Nov 02 '16 at 14:41
  • @CarlRoberts - Yes, Hunspell et al. are different binaries which must be installed to use them with Emacs through `ispell.el` packaged with Emacs. And yes, "most simple" depends heavily on your taste, that's the reason I kept away from giving an answer to it. – Arash Esbati Nov 02 '16 at 14:55