首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OS X 10.9上的hunspell / emacs

OS X 10.9上的hunspell / emacs
EN

Stack Overflow用户
提问于 2014-08-21 05:54:41
回答 2查看 2K关注 0票数 2

我不能让一个拼写来构建,所以我正在尝试一个拼写。造了个咒语。设置.emacs,以便emacs能够(并且确实)找到可执行文件,如下所示:

代码语言:javascript
复制
;;; Spell checking using hunspell
(setq ispell-dictionary-alist
  '((nil "[A-Za-z]" "[^A-Za-z]" "[']" t
     ("-d" "en_US" "-i" "utf-8") nil utf-8)
    ("american"
     "[A-Za-z]" "[^A-Za-z]" "[']" nil
     ("-d" "en_US") nil utf-8)
    ("english"
     "[A-Za-z]" "[^A-Za-z]" "[']" nil
     ("-d" "en_GB") nil utf-8)
    ("british"
     "[A-Za-z]" "[^A-Za-z]" "[']" nil
     ("-d" "en_GB") nil utf-8)
    ("norsk"
     "[A-Za-zÉÆØÅéæøå]" "[^A-Za-zÉÆØÅéæøå]" "[\"]" nil
     ("-d" "nb_NO") "~list" utf-8)))
(eval-after-load "ispell"
  (progn
    (setq ispell-dictionary "english"
          ispell-extra-args '("-a" "-i" "utf-8")
          ispell-silently-savep t)))

(setq ispell-dictionary "en_US")
(setq ispell-program-name "/usr/local/bin/hunspell")

在我的.bash_profile里有这个

代码语言:javascript
复制
export DICTIONARY=en_US
export DICPATH=/Users/myname/Applications/en_US

也尝试过

代码语言:javascript
复制
export DICTIONARY=en_US
export DICPATH=/Users/gpajer/Applications/

(有一个~/Applications/en_US目录,字典文件驻留在其中)

但是ispell-buffer返回的内容如下

代码语言:javascript
复制
Can't open affix or dictionary flies for dictionary named "english".
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)

亨斯法尔找不到字典吗?我应该把字典放在什么特别的地方吗?或者,我如何告诉emacs/hunspell在哪里可以找到字典?

EN

回答 2

Stack Overflow用户

发布于 2014-08-22 00:38:39

升级到Emacs 24.4,可以通过安装最新的预测试或构建Emacs主干来实现。用于Emacs主干的预测试和夜间构建的预构建二进制文件可以从Emacs for Mac OS X获得,分别位于“预测试”和“夜间”部分。

Emacs 24.4极大地改进了对Hunspell的支持,并且现在只需很少的定制就可以自动使用Hunspell。值得注意的是,Emacs现在可以发现可用的Hunspell字典,并自动填充ispell-dictionary-alist。从本质上讲,您只需要以下代码就可以告诉Emacs使用hunspell:

代码语言:javascript
复制
(setq ispell-program-name (executable-find "hunspell"))

但是,您需要显式地为Hunspell安装这些字典,这取决于您安装Hunspell的方式。通常,您只需要将相应的*.aff*.dic文件放入~/Library/Spelling中。不过,获取字典要困难一些。最好的方法可能是下载相应的LibreOffice扩展,并从OXT文件中提取*.dic*.aff文件,这些文件本质上只是ZIP文件。至少,我就是这么做的。也许有更好的字典来源。

除了特定于语言的字典之外,您还需要一个Emacs的“默认”字典。这本字典需要按字面意思命名为default。不过,创建它非常简单。只需创建指向您首选语言的字典的符号链接:

代码语言:javascript
复制
$ cd ~/Library/Spelling
$ ln -s en_GB.aff default.aff
$ ln -s en_GB.dic default.dic

这就是我在我的系统上启动并工作所需要的一切。

票数 2
EN

Stack Overflow用户

发布于 2014-09-14 03:45:23

这是我的Emacs 24.4 / OS X 10.9的相关设置,希望能对你有所帮助。

首先,让路径正常工作:

代码语言:javascript
复制
(cond
 ((eq system-type 'darwin)
  ;; Sane path (OSX doesn't've much on the path when launching not from shell:
  (setq path "/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/texbin:/opt/local/bin")
  (setenv "PATH" path)
  ;; Emacs 24.4 seems to need this...:
  (mapc (lambda (p) (push p exec-path)) '("/usr/local/bin" "/usr/texbin" "/opt/local/bin"))))

然后,指向Hunspell并设置它:

代码语言:javascript
复制
(setq-default ispell-program-name (executable-find "hunspell"))
(setq ispell-dictionary "american"
  ispell-extra-args '() ;; TeX mode "-t"
  ispell-silently-savep t
  )

(add-hook 'ispell-initialize-spellchecker-hook
          (lambda ()
            (setq ispell-base-dicts-override-alist
                  '((nil ; default
                     "[A-Za-z]" "[^A-Za-z]" "[']" t
                     ("-d" "en_US" "-i" "utf-8") nil utf-8)
                    ("american" ; Yankee English
                     "[A-Za-z]" "[^A-Za-z]" "[']" t
                     ("-d" "en_US" "-i" "utf-8") nil utf-8)
                    ("british" ; British English
                     "[A-Za-z]" "[^A-Za-z]" "[']" t
                     ("-d" "en_GB" "-i" "utf-8") nil utf-8)))))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25415070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档