Force Flyspell перейти к концу слова, когда автозакорреть слово в Emacs
Вопрос
Я обнаружил, что раздражает, что 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))