TL;DR:
On Fedora 40, 19th of June 2024, using American English it is:
$HOME/.config/enchant/en_US.dic
$HOME/.config/enchant/en_US.dic
#or
$HOME/.config/enchant/$LANG #Read Warning Below
# Warning: True $LANG value is en_US.UTF-8, so it's not true LANG
# If it's not the above, you can still use the method below to find it
Using a Rare Word to Identify Dictionary File Locations
- Add a long word that is unlikely to be found in other files to
the personal dictionary:
- type the word aldsjadsdaads in an Emacs buffer with flyspell-mode
active in it, and type space
- middle-click the word that should be marked as an error and click
save word to add it to the dictionary
- Run a
grep -r
command to find the word on your computer.
Background & long story:
Looks like the location of dictionaries varies greatly and is not
always under the default location, even location declared by the
manuals. On Fedora, according to hunspell's manual (intentionally not
marked as code) it's $HOME/.hunspell_default, but it's wrong.
Because I thought I checked everywhere in $HOME, I run the grep
command on all the directories in root. It went for half a day at
first (10 year old laptop), and still didn't leave /proc. Afterwards I
typed !BUT NOT TYPED ENTER! grep -r asdljasldja $(ls /)
and
without pressing Enter, I typed (works only in bash!) Ctrl+Alt+e
(all at the same time), which expands shell expansions in currently
edited command without executing the line. And then !STILL WITHOUT
PRESSING ENTER, Ctrl+x Ctrl+e (Holding Ctrl press and release x and
then e), which opened the command in the editor. And in the editor I
added missing forward slashes on all the directories inside root that
should have showed up after expanding the $(ls /). I also removed the
proc dev boot lost+found media mnt and opt. Resulting command looked
like this:
sudo grep -r \
"ewpjpwjdpewijdpewijdpiewjpiewjdpijjde" \
/bin /etc /home /lib /lib64 /opt /root \
/sbin /srv /sys /tmp /usr /var \
> dict_poison_word_grep.out
The result was sent to an .out file, because I run the grep in the
background expecting another few hours before it finishes.
Hope you can find your dictionary :)
aspell --lang=en dump config
You can setup anaspell.conf
in theetc
directory and then store your personal dictionaries wherever you want.C-h v ispell-personal-dictionary
(as @Lompik said). If that doesn't tell you all you need to know, click the link that takes you to the source code, and see what it uses as the default value.ispell-process-directory
. I found this by following @Drew's advice, then diving into the code to see howispell-personal-dictionary
was being used. Time-order that dir listing and you'll find your file.