繁体   English   中英

mac os x上的emacs,如何让拼写检查工作

[英]emacs on mac os x, how to get spell check to work

我正在从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,并使用自制软件重新安装(和链接)emacs / aspell,如@katspaugh所建议的那样。 我删除了上面显示的代码,只留下

(setq ispell-program-name "aspell")

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

Searching for program: No such file or directory, aspell

我已经将aspell与brew link aspell ,为什么它仍然无法找到它?

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

  • 安装Homebrew
  • brew install emacs --with-cocoa --with-gnutls
  • brew install aspell
  • open -a Emacs
  • Mx ispell

请享用!

我使用自制的 aspell。 只是:

brew install aspell --with-lang-en

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

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

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

这适用于任何Emacs,包括Emacs for Mac OS X ,brew中的一个或Emacs系统。

这是问题的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那样高效灵活。

在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

我使用了那个黑客多年,但是当最后一次升级删除它时,最终被迫找出正确的解决方案。 我用homebrew来安装ispell和apsell,并且会在〜/ .emacs中设置哪一个

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

有这种类似的讨论在这里

-lrm

我以katspaugh,David Caldwell和ÉbeIsaac的答案为基础,并使其与最新版本一起使用。

安装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")

启动Mx ispell在缓冲区,它的工作原理。

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

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

(setq ispell-program-name“/ sw / bin / ispell”)

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

使用brew cask install emacs将附带一个名为mx ispell的内置拼写检查程序。

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

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

  2. 转到emacs并评估此功能或更好,但将其放在您的init文件中(setq ispell-program-name "/usr/local/bin/aspell")

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM