2

aspell がビルドできないので、hunspell を試しています。hunspell をビルドしました。次のように、.emacs をセットアップして、emacs が実行可能ファイルを見つけられるように (また実際に見つけられるように)、次のようにします。

;;; 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 にあります

export DICTIONARY=en_US
export DICPATH=/Users/myname/Applications/en_US

も試した

export DICTIONARY=en_US
export DICPATH=/Users/gpajer/Applications/

(辞書ファイルが存在するディレクトリ ~/Applications/en_US があります)

しかし ispell-buffer は次のようなものを返します

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)

hunspell は辞書を見つけられませんか? 辞書を置くべき特別な場所はありますか? または、辞書を探す場所を emacs/hunspell に伝えるにはどうすればよいですか?

4

2 に答える 2

2

最新のプレテストをインストールするか、Emacs トランクを構築して、Emacs 24.4 にアップグレードします。Emacs トランクのプレテストとナイトリー ビルド用のプレビルド バイナリは、Emacs for Mac OS Xの「Pretests」セクションと「Nightlies」セクションでそれぞれ入手できます。

Emacs 24.4 では、Hunspell のサポートが大幅に改善され、さらにカスタマイズするだけで Hunspell を自動的に使用できるようになりました。特に、Emacs は利用可能な Hunspell 辞書を検出し、ispell-dictionary-alist自動的に入力できるようになりました。基本的に、Emacs に hunspell を使用するように指示するには、次のものが必要です。

(setq ispell-program-name (executable-find "hunspell"))

ただし、Hunspell のインストール方法によっては、Hunspell 用のこれらの辞書を明示的にインストールする必要があります。*.aff通常は、対応すると*.dicファイルをに配置するだけで済みます~/Library/Spelling。ただし、辞書を入手するのは少し難しいです。おそらく最善の方法は、対応する LibreOffice 拡張機能をダウンロードし、本質的に単なる ZIP ファイルである OXT ファイルから*.dicおよびファイルを抽出することです。*.aff少なくとも、私はそうしています。より良い辞書のソースがあるかもしれません。

言語固有の辞書に加えて、Emacs 用の「デフォルト」辞書も必要です。defaultこのディクショナリは、文字通り名前を付ける必要があります。ただし、それを作成するのは簡単です。好みの言語の辞書へのシンボリック リンクを作成するだけです。

$ cd ~/Library/Spelling
$ ln -s en_GB.aff default.aff
$ ln -s en_GB.dic default.dic

これだけで、Hunspell を起動して自分のシステムで動作させることができました。

于 2014-08-21T16:38:38.690 に答える
0

これが私の作業中の Emacs 24.4 / OS X 10.9 Hunspell 関連のセットアップです。

まず、パスを機能させます。

(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 をポイントして設定します。

(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)))))
于 2014-09-13T19:45:23.193 に答える