Emacs 맞춤법 검사기로 여러 사전을 사용하려면 어떻게해야합니까? 특히 영국 영어 사전과 의학 영어 사전을 동시에 사용하고 싶습니다.
flyspell
있습니다.
flyspell
있지만 반드시 그런 것은 아닙니다. 그렇게하면 답변이 더 많은 사람들과 관련 될 수 있습니다.
Emacs 맞춤법 검사기로 여러 사전을 사용하려면 어떻게해야합니까? 특히 영국 영어 사전과 의학 영어 사전을 동시에 사용하고 싶습니다.
flyspell
있습니다.
flyspell
있지만 반드시 그런 것은 아닙니다. 그렇게하면 답변이 더 많은 사람들과 관련 될 수 있습니다.
답변:
Hunspell 은 여러 사전을 사용하여 맞춤법 검사를 수행 할 수 있으며 Emacs에서 작동하도록이를 구성 할 수 있습니다. 이것이 Emacs 25.0과 함께 OS X 10.11에서 수행하는 방법입니다. 이전 Emacsen에서는 작동하지 않습니다.
Hunspell 설치
brew install hunspell
LibreOffice 및 OpenMedSpel 에서 Hunspell 사전을 다운로드 하십시오 .
cd ~/Downloads/
curl http://extensions.libreoffice.org/extension-center/english-dictionaries/releases/2016.04.01/dict-en.oxt > dict-en.oxt
unzip dict-en.oxt en_GB.aff en_GB.dic
curl -L https://addons.mozilla.org/en-US/firefox/downloads/latest/6526/addon-6526-latest.xpi > openmedspel.xpi
unzip openmedspel.xpi dictionaries/OpenMedSpel.{aff,dic}
mv dictionaries/OpenMedSpel.dic en_US-med.dic
mv dictionaries/OpenMedSpel.aff en_US-med.aff
에 사전을 넣습니다 ~/Library/Spelling/
.
mv *.aff *.dic ~/Library/Spelling/
이것을 다음에 추가하십시오 ~/.emacs/init.el
:
(with-eval-after-load "ispell"
(setq ispell-program-name "hunspell")
(setq ispell-dictionary "en_GB,en_US-med")
;; ispell-set-spellchecker-params has to be called
;; before ispell-hunspell-add-multi-dic will work
(ispell-set-spellchecker-params)
(ispell-hunspell-add-multi-dic "en_GB,en_US-med"))
ispell-hunspell-add-multi-dic
은 ispell.el
Emacs 24.5의 이전 버전 에서도 존재하지 않는 것 같습니다 . github.com/emacs-mirror/emacs/blob/master/lisp/textmodes/… 에서 최신 파일을 다운로드하고 다시 컴파일하여 작동하도록했습니다.
Symbol’s function definition is void: ispell-hunspell-add-multi-dic
, 확실하지만 /usr/share/emacs/25.1.50/lisp/textmodes/ispell.elc
기능이 존재합니다. 어떻게 된 일인지 아십니까? 감사.
ispell.el
에 /usr/share/emacs/site-lisp/
새로운 그림자 ispell.el
보기 ... Emacs25의를 unix.stackexchange.com/questions/28483/... 같은 문제가 발생할 수 있습니다 사람을 위해.
en_US-med.dic 및 en_US-med.aff를 이미 다운로드하여 hunspell을 설치했다고 가정하십시오.
단계 1, hunspell -D
쉘 에서 실행 하면 hunspell이 사전을 검색하는 디렉토리를 알려주고 en_US-med.dic 및 en_US-med.aff를 해당 디렉토리로 복사합니다.
2 단계, 아래 코드를 ~ / .emacs에 삽입하십시오.
(setq ispell-program-name "hunspell")
;; you could set `ispell-dictionary` instead but `ispell-local-dictionary' has higher priority
(setq ispell-local-dictionary "en_US")
(setq ispell-local-dictionary-alist '(("en_US" "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-d" "en_US,en_US-med") nil utf-8)))
실제로 "-d en_US, en_US-med"옵션을 hunspell CLI에 전달하여 두 사전 "en_US"및 "en_US-med" 를 동시에 사용할 수 있습니다.
"-d"옵션은 hunspell 매뉴얼 ( man hunspell
쉘)에 설명되어 있습니다.
다음은 hunspell 매뉴얼에서 인용 한 텍스트입니다.
-d en_US,en_geo,en_med,de_DE,de_med
en_US and de_DE are base dictionaries, they consist of aff and dic
file pairs: en_US.aff, en_US.dic and de_DE.aff, de_DE.dic. En_geo,
en_med, de_med are special dictionaries: dictionaries without affix
file. Special dictionaries are optional extension of the base dictio‐
naries usually with special (medical, law etc.) terms. There is no
naming convention for special dictionaries, only the ".dic" extension:
dictionaries without affix file will be an extension of the preceding
base dictionary (right order of the parameter list needs for good sug‐
gestions). First item of -d parameter list must be a base dictionary.
Emacs 24.3, Debian 7에서 "fibrochondritis"라는 단어로 테스트했습니다.
모든 OS에서 Emacs 23+에서 작동 해야 합니다 .
Windows에서 hunspell 실행 파일에 사전 검색 경로를 알려주는 가장 쉬운 방법은 환경 변수를 설정하는 것입니다 DICTPATH
(hunspell 설명서에 설명되어 있음). 그것은 매우 가능성이 Cygwin에서 / MSYS2에서 hunspell 실행 파일은 UNIX 형식으로 경로를 인식합니다 .
-d
. 옵션을 눈치 채지 못했습니다 .
helm-flyspell
시스템 언어로 사전을 사용하는 것 같습니다.
flyspell
있습니까?