[英]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
,为什么它仍然无法找到它?
这是一个有效的解决方案:
brew install emacs --with-cocoa --with-gnutls
brew install aspell
open -a Emacs
请享用!
我使用自制的 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
的内置拼写检查程序。
你必须做两件事才能让它发挥作用。
brew install aspell
或者brew install aspell --with-lang-en
转到emacs并评估此功能或更好,但将其放在您的init文件中(setq ispell-program-name "/usr/local/bin/aspell")
注意:aspell的位置可以在macOS终端中找到which aspell
,它应该等于上面的第2步。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.