18

我正在从 Windows 迁移到 Mac,我整晚都在试图让 emacs 工作。

我已经安装了GNU emacs并简单地复制了我的 Windows.emacs文件,这似乎工作正常,除了拼写检查。我安装了cocoAspell并按照此设置说明添加路径并将 ispell 更改为 aspell,但是当我运行拼写检查时,我得到了

Error: The file "/use/local/lib/aspell-0.60/english" can not be opened for reading.

FlySpell 也不起作用。

似乎它正在查看错误的目录,但我已经有了

(setq ispell-program-name "aspell"
      ispell-dictionary "english"
      ispell-dictionary-alist
      (let ((default '("[A-Za-z]" "[^A-Za-z]" "[']" nil
                       ("-B" "-d" "english" "--dict-dir"
                        "/Library/Application Support/cocoAspell/aspell6-en-6.0-0")
                       nil iso-8859-1)))
        `((nil ,@default)
          ("english" ,@default))))

它指向正确的字典目录“/Library/Application Support/cocoAspell/aspell6-en-6.0-0”。我无法弄清楚为什么我收到错误以及如何解决它。


更新:

现在我已经删除了我的 GNU emacs 和 cocoAspell,并按照 @katspaugh 的建议使用自制软件重新安装(和链接)emacs/aspell。我删除了上面显示的代码,只留下

(setq ispell-program-name "aspell")

现在当我运行拼写检查时,我得到了

Searching for program: No such file or directory, aspell

我已经将 aspell 与 关联brew link aspell,为什么仍然找不到它?

4

8 回答 8

27

这是一个有效的解决方案:

  • 安装自制软件
  • brew install emacs --with-cocoa --with-gnutls
  • brew install aspell
  • open -a Emacs
  • M-x ispell

享受!

于 2013-09-26T10:53:50.543 回答
12

我使用Homebrew的 aspell 。简单地:

brew install aspell --with-lang-en

然后,确保您的 brew bin 目录位于您的 Emacsexec-path变量中。如果您将/usr/local其用作 brew 前缀,那么它将正常工作,因为exec-path默认情况下包含该路径。否则,您将需要在 .emacs 中的某个位置:

  (setq exec-path (append "/path/to/brew/bin" exec-path)))

customize您也可以使用带有“”的界面完成相同的操作M-x customize-variable RET exec-path RET,然后使用 gui 添加路径。

这适用于任何 Emacs,包括来自Emacs for Mac OS X的 Emacs、来自 brew 的 Emacs 或系统 Emacs。

于 2014-02-13T08:44:34.800 回答
3

这是该问题的 MacPorts 解决方案。(此链接的学分)

$ sudo port install aspell

然后为各自的语言支持安装 aspell 的字典之一

$ sudo port install aspell-dict-en

然后将以下行添加到您的 init.el 或 .emacs 文件中。

(setq ispell-program-name "/opt/local/bin/aspell")

它对我有用。

注意:“sudo ports install ispell”也可以,但不如 aspell 高效灵活。

于 2015-05-04T04:17:38.737 回答
2

我以 katspaugh、David Caldwell 和 Ébe Isaac 的答案为基础,并使其适用于最新版本。

安装 aspell,例如brew

brew install aspell

brew符号链接/usr/local/bin,您可以验证安装:

$ which aspell
/usr/local/bin/aspell

现在告诉 Emacs 这个位置,例如在~/.emacs

(setq ispell-program-name "/opt/local/bin/aspell")

M-x ispell在缓冲区中启动,它可以工作。

要安装ports,请参阅其他答案。

于 2019-03-04T07:54:50.853 回答
1

在 OS X 10.12 (Sierra) 上的 /usr/bin 中创建符号链接是不允许或必要的(或一个好主意)。

[iMac ~]$ sudo ln -s /usr/local/bin/ispell /usr/bin/ispell
ln: /usr/bin/ispell: Operation not permitted

我多年来一直使用这个黑客,但当最后一次升级删除它时,我终于被迫找出正确的解决方案。我使用自制软件来安装 ispell 和 apsell 并且会得到我在 ~/.emacs 中设置的任何一个

[iMac ~]$ cat ~/.emacs
(setq ispell-program-name "/usr/local/bin/aspell")

这里有类似的讨论

-lrm

于 2016-11-12T03:45:03.730 回答
0

如果您使用 fink 而不是 home-brew,它也可以工作。ispell 将在 /sw/bin 中,添加到 .emacs 文件的字符串将是:

(setq ispell-program-name "/sw/bin/ispell")

于 2015-08-07T16:02:55.063 回答
0

安装的 Emacsbrew cask install emacs将附带一个内置的拼写检查器,称为m-x ispell.

你必须做两件事才能让它发挥作用。

  1. brew install aspell或者可能brew install aspell --with-lang-en

  2. 去 emacs 并评估这个函数,或者更好的是把它放在你的 init 文件中(setq ispell-program-name "/usr/local/bin/aspell")

注意: aspell 的位置可以which aspell在 macOS 终端中找到,它应该等于上面的第 2 步。

于 2019-07-18T17:05:41.063 回答
0

安装 aspell 并添加(setq ispell-program-name "/usr/local/bin/aspell")init.el我不起作用。我必须创建一个符号链接sudo ln -s /usr/local/bin/aspell /usr/bin/ispell,然后 emacs flyspell-mode 工作正常。

于 2015-09-01T18:07:20.297 回答