hunspell: 명령줄에서 사전에 단어 추가

hunspell: 명령줄에서 사전에 단어 추가

에서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이 읽는 호환 가능한 사전에 쓰는 "공통" 프로그램을 사용하시나요?

답변1

나는 대신에 (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.

따라서 에서는 -a mode입력 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)[........] A line prefixed with '#' will cause the
personal dictionary to be saved.

단일 단어 줄 접두사 *(단어와 접두사 사이에 공백이 없어야 함)는 해당 단어를 사용자 사전에 추가하지만 현재 hunspell세션에 대해서만 추가합니다. 페이지에 따라 man접두사가 붙은 줄만 #개인 사전을 생성하기 때문입니다. (즉, 디스크상의 파일) 저장됩니다. 따라서 실행

echo "*goosfraba" | hunspell -a

전혀 아무것도하지 않습니다. hunspell추가하다구스프라바이 세션에 대한 사전으로 이동한 다음 종료됩니다(처리할 다른 행이 없음). #최근 추가된 단어를 저장하려면 접두사가 붙은 두 번째 줄을 추가해야 합니다 .

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

보자:

::맞춤법 검사구스프라바:

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\ngoosfraba" | hunspell -a
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)
*

* = Word사전에 있습니다.

::맞춤법 검사구스프라바다시 (새 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)

::맞춤법 검사구스프라바다시 (새 hunspell세션):

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

* = Word사전에 있습니다.

답변2

가장 쉬운 해결책은 Aspell을 사용하여 홈 폴더에 사용자 정의 파일을 만드는 것이라는 것을 알았습니다..aspell.lang.pws, 다음과 같은 내용이 포함됩니다.

personal_ws-1.1 en 0
my_word

언어 "en"의 경우 "휴대용 사전"을 공유하는 좋은 방법인 것 같습니다. 그런데

관련 정보