4

I am learning how to work with Emacs on Ubuntu 20.04. After going through Tutorial and using default key-bindings for some time, I have decided to test more ergonomic (at least for me) setup - that is how I ended up in Doom Emacs.

First time using Doom Emacs, I am writing notes for usage in simple text mode. I write in my native (czech) language. All text I write is highlighted as spelling error, which is kind-of annoying. Which external program is responsible for that in Doom Emacs and how can I change its spelling dictionary??

In Doom Emacs I have enabled all :checkers options (grammar, spell, syntax). I have also followed this question solution: Ispell Spellcheck ; installed appropriate ispell dictionary from apt and restarted Emacs. I have also tryed to stop flyspell-mode (if this would be caused by flyspell), but the misspelling markings still persist in viewed text.

I have also tryed to flyspell-buffer, but with no success.

When I was learning Emacs, I have been doing the same with vanilla Emacs and I have used GUI-top bar menu to set language (not sure if it was for buffer or whole application) and everything worked as expected, there were no spurious misspellings detected.

Which program is responsible in Doom Emacs, or Emacs in general, for spellchecking on-the-fly and how can its dictionary be changed?

If this site is not the right place to ask (and I should adress author directly), please, let me know in comments. My reason asking here is because I think this is not a bug in Doom Emacs, but that it is my lack of knowledge how to work with Emacs.

2 Answers 2

1

The dictionary used is controlled by the variables ispell-dictionary and ispell-local-dictionary. Where the first is the default and the second is buffer local so different files can have different languages for spell-check. There is a helpful function ispell-change-dictionary that will set them for you. You can run it in a buffer with M-x ispell-change-dictionary, select your language and hit [return]

To change the default permanently, add (ispell-change-dictionary "czech" t) (the second argument means to set it globally for all buffers) to your .emacs.

4
  • I have actually found out that the package responsible is spell-fu. It abides the same variables, howver somehow it is unable to recognize words from different language then English, when they consist of non-ASCII letters (ex: "Příliš žluťoučký kůň"). By any chance, do you know how to turn off this package in Doom Emacs, or to turn of spellcheck in this distribution alltogether? (I can stick with just manually executing buffer-spellcheck with flyspell, that seems to work correctly). Commented Oct 14, 2020 at 17:22
  • Afraid I don't. You could ask a new question about configuring that specific pakcage
    – erikstokes
    Commented Oct 14, 2020 at 18:08
  • I have found it, if you would be interested to see. I write it as a second answer for any other reader unfortunate enough to be hit by this spell-fu issue. Commented Oct 14, 2020 at 18:55
1

Accepted answer helped me to precisely locate the issue: It is spell-fu Emacs package, which is used by Doom Emacs to do on-the-fly spellchecking by default.

In my case, it seemed contrary to its documentation to not respond to setting M-x ispell-change-dictionary; however, I was able to make spell-fu accept czech dictionary by editing the config file.

After some time searching, I have hit upon this issue on Doom Emacs GitHub repo:

Make spell-fu optional

Which adresses my issue. However, for me is good enough to turn off the spell-fu mode by <Space> t s and spellcheck my buffer with flyspell by means of M-x flyspell-buffer whenever I want.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.