Windows PC에서 hunspell을 어떻게 설정합니까?


10

에 hunspell 사전이 C:\hunspell\있습니다. 그것은 포함 .dic하고 .aff세 가지 언어 파일 : en_GB, en_US,와 nb_NO. 웹에서 이맥스에서 훈 스펠을 만드는 방법에 대한 설명은 혼란스러워합니다.

이맥스에서이 3 개의 훈증 사전을 사용하려면 init 파일에 필요한 최소 코드는 무엇입니까?

한 웹 사이트에서 제안한 다음 코드를 시도했습니다.

(add-to-list 'exec-path "C:/hunspell/bin/")
(setq ispell-program-name (locate-file "hunspell"
                       exec-path exec-suffixes 'file-executable-p))

그러나로 사전을 변경 M-x ispell-change-dictionary하려면 다음 메시지가 표시됩니다.

ispell-phaf : nil과 일치하는 항목이 없습니다.



답변:


4

이맥스 설정 :

(setq ispell-program-name "c:/what-ever-path/hunspell")

;; "en_US" is key to lookup in `ispell-local-dictionary-alist'.
;; Please note it will be passed as default value to hunspell CLI `-d` option
;; if you don't manually setup `-d` in `ispell-local-dictionary-alist`
(setq ispell-local-dictionary "en_US") 

(setq ispell-local-dictionary-alist
      '(("en_US" "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-d" "en_US") nil utf-8)))

Hunspell 사전 설정 :

hunspell -D사전 창에서 실행 하여 사전을 검색하는 hunspell 디렉토리를 나열합니다. 사전을 해당 디렉토리에 복사하십시오. 필요한 최소 설정입니다.

자세한 기술 정보는 http://blog.binchen.org/posts/what-s-the-best-spell-check-set-up-in-emacs.html 을 참조하십시오.


나를 위해 일했다! 내 설정 use-package(use-package ispell :config (setq ispell-program-name "C:/Program Files (x86)/hunspell-1.3.2-3-w32-bin/bin/hunspell.exe") (setq ispell-local-dictionary "en_US") (setq ispell-local-dictionary-alist '(("en_US" "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-d" "en_US") nil utf-8))))
Lorem Ipsum

영어 맞춤법 검사를위한 다른 구성 작업없이 Windows 10에서 hunspell에 대해 (setq ispell-program-name "c : /what-ever-path/hunspell.exe")를 수행하십시오.
Yu Shen

2

나는이 문제를 잠시 동안 만났다. 올바르게 기억하면 오류 메시지가 나타나는 이유 hunspell는 현재 환경을 기반으로 자체 구성 할 수 없기 때문 입니다. 따라서 수정하려면 hunspell특정 ispell변수 를 구성해야 합니다. 다음 코드 영어 사전을위한 hunspell을 설정하기에 충분 해야 합니다.

(require 'flyspell)
(setq ispell-dictionary "english")
(add-to-list 'ispell-local-dictionary-alist '(("english"
                                               "[[:alpha:]]"
                                               "[^[:alpha:]]"
                                               "[']"
                                               t
                                               ("-d" "en_US")
                                               nil
                                               utf-8)))
(setq ispell-hunspell-dictionary-alist ispell-local-dictionary-alist)

중요한 부분은에서 ispell-hunspell-dictionary-alist주어진 것과 같은 적절한 사전 목록으로 채워 져야 ispell-local-dictionary-alist합니다.

이 목록을 둘러싼 약간의 세부 사항이 있습니다. 그것에 대해 더 알고 싶다면 언제든지 읽어보십시오 M-x describe-variable ispell-local-dictionary-alist.


+1의 기본 설정 시도에 문제가있는 것 같습니다 ispell-hunspel-dictionary-alist. 대신 (require 'flyspell)당신이 고려해 볼 수 있습니다(with-eval-after-load "ispell" ...)
앤드류 스완

1

철자가 검색되는 위치에 원하는 모든 사전을 설치하십시오. 로 찾으십시오 hunspell -D. 설치되면이 명령이 표시됩니다.

init 파일에서 예를 들어 사전 en_GBen_US사전을 설치하십시오. 내 init 파일에서 다음을 수행했습니다.

(setenv "DICTIONARY" "en_GB")

Emacs를 열면을 활성화하십시오 flyspell-mode. 이맥스는 기본 사전으로 시작된다고 말합니다. 이것은 en_GB우리의 예를 위해 행동 중임을 의미 합니다. 이제 전환 M-x ispell-change-dictionary하려면 새 사전 이름을 Eg로 지정하십시오 en_US. 이제 다른 사전이 작동해야합니다. 이것은 다시 이멕스가 이펠을 시작했다고 말하지만 en_US사전 에는 이맥스에 의해 알려질 것이다 .


1

최신 버전의 Emacs (24.4 이상)를 사용한다고 가정하면 올바른 사전 이름을 사용하고 Emacs가 나머지를 자동으로 수행하기 만하면됩니다.

주요 문제는 Windows에서 다른 언어 설명 형식을 사용한다는 것입니다. 예를 들어 영국 영어는 ENG 이고 미국 영어는 ENU 입니다. 이것은 당신의 사전 파일을 호출 할 필요가 의미 ENU.dicENU.aff 영어 (미국), 그리고 ENG.dicENG.aff 영국 영어를.

"기본"사전이 필요할 수도 있고 hunspell이 너무 행복하지 않을 수도 있습니다. DICTIONARY 환경 변수를 설정하여 기본값을 강제 할 수도 있습니다 .

불행히도 나는 노르웨이어 사전이 무엇인지 알아낼 수 없습니다. Windows에서 노르웨이어 로캘을 사용하는 경우 다음을 평가하여 Emacs에서 확인할 수 있습니다.

(getenv "LANG")

Emacs가 사용중인 설정이 표시됩니다.


0

이것은 추측 일 뿐이지 만 "default"로 사용할 언어를 말해야 할 수도 있습니다.

(setq ispell-dictionary "en") ; default dictionary

기본값은 ispell-dictionary입니다 nil. 이것이 문제의 원인 일 수 있습니다.


팁 감사합니다, 그러나 불행히도 그것은 내 상황을 바꾸지 않는 것 같습니다. 오류 메시지가 계속 나타납니다
myotis
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.