Ответ 1
Вот рабочее решение:
- Установить Homebrew
brew install emacs --with-cocoa --with-gnutls
brew install aspell
open -a Emacs
- M-x ispell
Наслаждайтесь!
Я перехожу от 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-ru-6.0-0". Я не могу понять, почему я получил ошибку и как ее исправить.
Update:
Теперь я удалил свои GNU emacs и cocoAspell и снова установил (и связал) emacs/aspell с помощью homebrew, как предлагал @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 из Homebrew. Просто:
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
с "M-x customize-variable RET exec-path RET
", а затем с помощью gui добавить путь.
Это будет работать с любым Emacs, в том числе с Emacs для 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.
Создание символической ссылки в /usr/bin на OS X 10.12 (Sierra) не разрешено или необходимо (или хорошая идея).
[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
Я опираюсь на ответы Кэтспа, Дэвида Колдуэлла и Эба Исаака и заставил его работать с последними версиями.
Установите 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 и добавление (setq ispell-program-name "/usr/local/bin/aspell")
в init.el
не работает для меня. Я должен был сделать символическую ссылку sudo ln -s /usr/local/bin/aspell /usr/bin/ispell
, тогда emacs flyspell-mode работает нормально.
Emacs, установленный с brew cask install emacs
будет иметь встроенную проверку орфографии, называемую mx ispell
.
Вы должны сделать две вещи, чтобы заставить это работать.
brew install aspell
или, возможно, brew install aspell --with-lang-en
зайдите в emacs и оцените эту функцию или, что еще лучше, поместите ее в файл инициализации (setq ispell-program-name "/usr/local/bin/aspell")
Примечание: местоположение aspell можно найти, используя which aspell
в терминале macOS, который должен быть равен шагу 2. выше.