;; NO spell check for embedded snippets
(defadvice org-mode-flyspell-verify (after org-mode-flyspell-verify-hack activate)
(let* ((rlt ad-return-value)
(begin-regexp "^[ \t]*#\\+begin_\\(src\\|html\\|latex\\|example\\|quote\\)")
(end-regexp "^[ \t]*#\\+end_\\(src\\|html\\|latex\\|example\\|quote\\)")
(case-fold-search t)
b e)
(when ad-return-value
(save-excursion
(setq b (re-search-backward begin-regexp nil t))
(if b (setq e (re-search-forward end-regexp nil t))))
(if (and b e (< (point) e)) (setq rlt nil)))
(setq ad-return-value rlt)))
Tenga en cuenta que ispell-skip-region-alist NO es utilizado por flyspell.
Prueba en Emacs24.3, 24.4, 24.5, 25.1 con el modo org incorporado
La mayoría de los usuarios activan el flyspell por defecto. Entonces, el código anterior es suficiente.
Pero no habilito flyspell-mode en el archivo org. Prefiero manualmente M-x flyspell-buffer
una y otra vez. Entonces necesito (flyspell-mode 1) (flyspell-mode -1)
en org-mode-hook. Sí, enciende y luego apaga el modo flyspell. El propósito es asegurarse de que el predicado predeterminado del modo org esté cargado.
flyspell-generic-check-word-predicate
, si eso no se ha inventado. Aquí hay un hilo relacionado para flyspell usando elflyspell-generic-check-word-predicate
: superuser.com/a/345461/206164 ; y, aquí hay un hilo semi-relacionado para usar ispellispell-skip-region-alist
, pero no relacionado con flyspell: emacs.stackexchange.com/a/2103/2287