A variável ispell-skip-region-alist
faz o que você deseja quando corrige a ortografia do buffer, mas não para flyspell. Basta adicionar uma entrada como
(add-to-list 'ispell-skip-region-alist
'("^{{{" . "^}}}"))
Infelizmente, não é tão fácil conseguir flyspell para ignorar certas regiões. Você tem que usar flyspell-generic-check-word-predicate
, que é uma função. Vários modos já definem isso, então você teria que adicionar o seguinte como um conselho para essas funções. Vou assumir por simplicidade que você está usando um modo (eu usei text-mode
abaixo) que não tem isso definido. Então você pode adicionar o seguinte ao seu .emacs:
(defun flyspell-ignore-verbatim ()
"Function used for 'flyspell-generic-check-word-predicate' to ignore {{{ }}} blocks."
(save-excursion
(widen)
(let ((p (point))
(count 0))
(not (or (and (re-search-backward "^{{{" nil t)
(> p (point))
;; If there is no closing }}} then assume we're still in it
(or (not (re-search-forward "^}}}" nil t))
(< p (point))))
(eq 1 (progn (while (re-search-backward "'" (line-beginning-position) t)
(setq count (1+ count)))
(- count (* 2 (/ count 2))))))))))
(put 'text-mode 'flyspell-mode-predicate 'flyspell-ignore-verbatim)