Emacs на mac os x, как получить проверку орфографии на работу

Я перехожу от 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, почему он все еще не может его найти?

Ответы

Ответ 1

Вот рабочее решение:

  • Установить Homebrew
  • brew install emacs --with-cocoa --with-gnutls
  • brew install aspell
  • open -a Emacs
  • M-x ispell

Наслаждайтесь!

Ответ 2

Я использую 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.

Ответ 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.

Ответ 4

Создание символической ссылки в /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

Ответ 5

Я опираюсь на ответы Кэтспа, Дэвида Колдуэлла и Эба Исаака и заставил его работать с последними версиями.

Установите 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, см. Другие ответы.

Ответ 6

Он также работает, если вы используете fink вместо home- brew. ispell будет в /sw/bin и строка для добавления в файл .emacs будет:

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

Ответ 7

Установка aspell и добавление (setq ispell-program-name "/usr/local/bin/aspell") в init.el не работает для меня. Я должен был сделать символическую ссылку sudo ln -s /usr/local/bin/aspell /usr/bin/ispell, тогда emacs flyspell-mode работает нормально.

Ответ 8

Emacs, установленный с brew cask install emacs будет иметь встроенную проверку орфографии, называемую mx ispell.

Вы должны сделать две вещи, чтобы заставить это работать.

  1. brew install aspell или, возможно, brew install aspell --with-lang-en

  2. зайдите в emacs и оцените эту функцию или, что еще лучше, поместите ее в файл инициализации (setq ispell-program-name "/usr/local/bin/aspell")

Примечание: местоположение aspell можно найти, используя which aspell в терминале macOS, который должен быть равен шагу 2. выше.