Emacs не может найти flyspell/ispell

На моем Mac (Snow Leopard, 10.6.8) я использую модифицированную версию Emacs 24.2 здесь можно использовать Emacs Speaks Statistics (ESS) из загрузок страница. Emacs работает, но мне пока не удалось заставить работать проверку орфографии.

Чтобы исправить это, я следую инструкциям на этой странице скачать flyspell. Я скопировал файл flyspell.el в свой каталог /Applications/Emacs.app/Contents/Resources/site-lisp, который, по-видимому, является каталогом моего пути загрузки emacs (обратите внимание, что, например, файл auctex.el находится в этом каталоге).

Затем я изменил свой файл .emacs, добавив:

(autoload 'flyspell-mode "flyspell" "On-the-fly spelling checker." t)
(autoload 'flyspell-delay-command "flyspell" "Delay on command." t)
(autoload 'tex-mode-flyspell-verify "flyspell" "" t)
(add-hook 'LaTeX-mode-hook 'turn-on-flyspell)

Когда я открываю файл .tex и использую M-x flyspell-mode, я могу "автозаполнить" его (т. е. нажав вкладку, он дает мне правильные параметры flyspell), но когда я нажимаю RET, я получаю:

Searching for program: no such file or directory, ispell

Ни одно из решений, представленных в этом вопросе или этот вопрос сработал, поэтому я не уверен, что проблема здесь. У кого-нибудь есть идеи или сталкивался с этой проблемой раньше?


person TakeS    schedule 15.06.2013    source источник


Ответы (3)


Пожалуйста, прочитайте документацию, предоставленную самим Emacs, прежде чем пытаться выполнять произвольные инструкции со случайных веб-сайтов.

Emacs 24.2 включает Flyspell. Вы не должны не устанавливать его явно. Если вы это сделаете, отмените это, то есть удалите flyspell.el из /Applications/Emacs.app/Contents/Resources/site-lisp. В лучшем случае полностью удалите /Applications/Emacs.app и установите заново, чтобы начать с нуля.

Однако Flyspell нужен инструмент для проверки орфографии, которого нет в Emacs. Сообщение об ошибке говорит вам, что у вас нет такого инструмента.

Вам необходимо установить проверку орфографии ASpell. Вы можете установить его с помощью homebrew с brew install aspell.

person lunaryorn    schedule 15.06.2013
comment
или Macports в качестве альтернативы Homebrew. - person lawlist; 16.06.2013
comment
Если ОП хочет сделать свою жизнь действительно легкой, используйте вместо этого Aquamacs — он использует встроенный в OSX NSSpellChecker. Тогда ОП ничего не нужно. - person lawlist; 16.06.2013
comment
@lawlist Aquamacs — это непросто. С Aquamacs ему пришлось бы устанавливать ESS самостоятельно, что, возможно, не сложнее, чем установка aspell, но и не проще. Кроме того, Aquamacs по-прежнему основан на Emacs 23, который устарел и больше не поддерживается некоторыми пакетами. - person lunaryorn; 16.06.2013
comment
На самом деле установка aspell у меня не сработала. Однако, сделав brew install ispell --with-lang-en, flyspell-mode узнал его. - person metakermit; 26.07.2013
comment
Извините за очень поздний комментарий, но да, у меня есть дела. Отдельное спасибо за подсказку с пивом - person TakeS; 05.09.2013
comment
Вопрос ОП не удивителен, поскольку из веб-сайта flyspell не очевидно, что нужно установить aspell . - person kalu; 07.11.2014
comment
Установка aspell и ispell сама по себе не решила проблему для меня. Мне также пришлось добавить (setenv "PATH" (concat (getenv "PATH") ":/usr/local/bin")) и (setq exec-path (append exec-path '("/usr/local/bin"))) в мой файл .emacs, как было предложено здесь. - person farenorth; 26.02.2015
comment
Как видно из комментариев здесь, RTFM не является достаточным ответом. На самом деле это почти никогда не бывает хорошим ответом. Я редко видел руководство, которое давало бы больше, чем базовое представление о пакете. Пожалуйста, постарайтесь быть более полезными, если вы собираетесь размещать сообщения на Stackoverflow. - person Aaron Cooley; 27.08.2020

Я использовал homebrew для установки ispell и apsell и получил бы тот, который я установил в ~/.emacs с помощью

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

Аналогичное обсуждение этого здесь

person Lincoln Randall McFarland    schedule 12.11.2016

В Windows мне пришлось сделать следующее, чтобы запустить процесс Ispell:

  1. скачанный ispell (http://www.ssc.wisc.edu/~dvanness/ispell.htm)
  2. Разархивируйте содержимое в папку, которая находится на моем пути (например, Windows или c:\windows\system
  3. скачать aspell (http://aspell.net/win32/)- получить полную загрузку. смотрите ссылку на странице. (нужен ли вам ispell или нет, я не уверен)
  4. Добавьте приведенный ниже код в файл init.el.

  5. Запустите программу установки aspell

  6. Запустите emacs снова, ошибка не должна появляться.

    (require 'package)
    (add-to-list 'package-archives
             '("MELPA Stable" . "http://stable.melpa.org/packages/") t)
    (package-initialize)
    (package-refresh-contents)
    
    (package-install 'flycheck)
    
    (global-flycheck-mode)
    
    (use-package flycheck
      :ensure t
      :init
      (global-flycheck-mode t))
    
    (setq ispell-program-name "C:\\Program Files (x86)\\Aspell\\bin\\aspell.exe"
    

Вам не нужно делать все вышеперечисленное, но это то, что сработало для меня на Emacs, работающем в Windows 7.

person Stryker    schedule 09.03.2017
comment
Это сработало, хотя мне вообще не нужно было устанавливать ispell. Просто нужно было установить aspell и установить имя программы ispell, чтобы оно указывало на него. Aspell — более новый ispell, и, похоже, работает нормально. - person Didier A.; 26.04.2018
comment
Похоже, aspell больше не работает в Windows с emacs 26.1. - person Didier A.; 18.08.2018
comment
Вместо этого он работает с помощью hunspell: списки. gnu.org/archive/html/help-gnu-emacs/2014-04/msg00030.html - person Didier A.; 25.01.2020