Spell-Checking

自定義flyspell(ispell)字典

  • January 15, 2019

我知道如何將自定義單詞添加到 ispell,但我想從字典中刪除某些單詞。例如,雖然assandasses是正確的單詞,但我很少輸入它們,並希望將它們標記為和 的可能拼寫as錯誤assess

ispell 在哪裡儲存它的字典?手冊頁不提供位置。此外,手冊頁使建構新字典看起來有很多步驟,而且它不僅僅是一個 ASCII 文件,我可以在其中刪除某些單詞。任何建議如何在沒有給定單詞的情況下建構新字典?

編輯

從一些提示:http ://docstore.mik.ua/orelly/unix/upt/ch29_05.htm

看來我可以從 /usr/share/dict/words 開始,刪除我不想要的單詞,然後從中製作一個新的 ispell 字典。但是,我在製作新詞典時遇到了麻煩。buildhash是這裡的關鍵程序,但它需要一個附加文件,我不知道如何生成該文件。

我解決了這個問題aspell

  1. 創建一個排序文件aspell_no,其中包含您不希望拼寫檢查辨識的單詞。
  2. 執行以下程式碼:
aspell dump master | sort > aspell_master
comm -2 -3 aspell_master ~/.aspell_words_list_no > better_master
aspell --lang=en create master ./custom < better_master
sudo cp custom `aspell config dict-dir`

測試它:

echo "some words I do not want spell check to recognize" > test.txt
cat test.txt |aspell list --master=custom

讓它在 emacs 中工作(可能需要重新啟動 flyspell 或 emacs 才能讓它工作):

(setq ispell-program-name "aspell")
(setq ispell-list-command "list")
(setq ispell-extra-args '("--master=custom"))

引用自:https://unix.stackexchange.com/questions/118418