Spell-Checking

hunspell:從命令行將單詞添加到字典

  • January 11, 2019

hunspell 手冊頁

...
   When in the -a mode, hunspell will also accept lines  of  single
   words  prefixed  with  any of '*', '&', '@', '+', '-', '~', '#',
   '!', '%', '`', or '^'.  A line starting with '*' tells  hunspell
   to  insert the word into the user's dictionary (similar to the I
   command).
...

我嘗試了類似的方法:echo "* my_word" | hunspell -a但是這個詞不在我的字典中,因為解析範例文件再次將其顯示為拼寫錯誤的詞

這是如何工作的,如何添加自定義單詞?

還是使用 Aspell,或任何寫入 Hunspell/Aspell 讀取的兼容字典的“通用”程序?

我認為(similar to the I command)應該是(similar to the A command)

A

Accept the word **for the rest of this hunspell session**. 

讓我們再次檢查man頁面:

The -a option is intended to be used from other programs through a pipe.
In this mode, hunspell prints a one-line version identification message,
**and then begins reading lines of input**.

因此,當 in 時-a modehunspell會話在讀取並處理最後一行輸入後結束。此外,

When in the -a mode, hunspell will also accept lines of single words **prefixed
with any of** '*', '&', '@', '+', '-', '~', '#', '!', '%', ''', or '^'. **A line
starting with '*' tells hunspell to insert the word into the user's dictionary**
(similar to the I command)[........] **A line prefixed with '#' will cause the
personal dictionary to be saved**.

為單個單詞行添加前綴*(注意單詞和前綴之間不應有空格)會將該單詞添加到使用者的字典中,但僅適用於目前hunspell會話,因為根據man頁面,只有帶有前綴的行#會導致個人字典要保存(即磁碟上的文件)。因此執行

echo "*goosfraba" | hunspell -a

絕對什麼都不做。hunspellgoosfraba添加到此會話的字典然後退出(沒有其他要處理的行)。您必須添加以 為前綴的第二行以#保存最近添加的單詞:

echo -e "*goosfraba\n#" | hunspell -a

讓我們來看看:

::拼寫檢查goosfraba :

echo -e "goosfraba" | hunspell -a
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)
& goosfraba 1 0: goofball

& =Word不在字典中,有一個差點錯過:goofball

::將 goosfraba 添加到字典中,然後在同一hunspell會話期間進行拼寫檢查(兩行):

echo -e "*goosfraba\ngoosfraba" | hunspell -a
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)
*
  • =Word在字典裡。

::再次對goosfraba進行拼寫檢查(新hunspell會話):

echo -e "goosfraba" | hunspell -a
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)
& goosfraba 1 0: goofball

& = 同樣,word不在字典中(在上一個會話期間沒有保存任何內容)

::將 goosfraba 添加到字典並在同一hunspell會話期間保存(兩行):

echo -e "*goosfraba\n#" | hunspell -a
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)

::再次對goosfraba進行拼寫檢查(新hunspell會話):

echo "goosfraba" | hunspell -a
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)
*
  • =Word在字典裡。

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