Force Flyspell перейти к концу слова, когда автозакорреть слово в Emacs

StackOverflow https://stackoverflow.com/questions/7343094

Вопрос

Я обнаружил, что раздражает, что Flyspell, кажется, остается в середине слова, когда вы выполняете команду Flyspell-Auto-Correct Word. Можно ли изменить это, чтобы заставить его перейти к концу слова после запуска команды? Это может быть так же просто, как настройка привязки ключа с автоматическим словом, а затем перемещается перед словом, которое я знаю, как это сделать. Но это не сработает во всех случаях, потому что иногда это ставит курсор за словом, если автоматическое полное слово было меньше, чем напечатанное слово. Любая помощь в этом была бы отличной.

Это было полезно?

Решение

Попробуйте этот код:

(eval-after-load "flyspell"
  '(defun flyspell-ajust-cursor-point (save cursor-location old-max)
     (when (not (looking-at "\\b"))
       (forward-word))))

Протестировано с помощью Flyspell версии 1.7K и с версией, поставляемой с Emacs 23.2.

Другие советы

Я посмотрел через (defun flyspell-auto-correct-word ...) И я не вижу там хороших крючков или других точек настройки, поэтому я думаю, что лучше всего использовать C-h f defadvice:

(defadvice flyspell-auto-correct-word (after flyspell-forward-word activate) (flyspell-goto-next-error))
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top