I'm trying to use flyspell from inside the terminal but when I run flyspell-correct-word-before-point
I get the error This command requires pop-up dialogs
. Is there a way to work around this issue? Am I just misconfigured? I don't believe I have any flyspell-specific configuration settings.
Add a comment
|
1 Answer
EmacsWiki has the answer to this question on the Fly Spell page:
If you’d like to use Flyspell’s menu selection in the terminal, or just prefer to use popup.el over the graphical menu, stick this somewhere in your load path:
(defun flyspell-emacs-popup-textual (event poss word)
"A textual flyspell popup menu."
(require 'popup)
(let* ((corrects (if flyspell-sort-corrections
(sort (car (cdr (cdr poss))) 'string<)
(car (cdr (cdr poss)))))
(cor-menu (if (consp corrects)
(mapcar (lambda (correct)
(list correct correct))
corrects)
'()))
(affix (car (cdr (cdr (cdr poss)))))
show-affix-info
(base-menu (let ((save (if (and (consp affix) show-affix-info)
(list
(list (concat "Save affix: " (car affix))
'save)
'("Accept (session)" session)
'("Accept (buffer)" buffer))
'(("Save word" save)
("Accept (session)" session)
("Accept (buffer)" buffer)))))
(if (consp cor-menu)
(append cor-menu (cons "" save))
save)))
(menu (mapcar
(lambda (arg) (if (consp arg) (car arg) arg))
base-menu)))
(cadr (assoc (popup-menu* menu :scroll-bar t) base-menu))))
and put this in your init file:
(eval-after-load "flyspell"
'(progn
(fset 'flyspell-emacs-popup 'flyspell-emacs-popup-textual)))