Переменная ispell-skip-region-alist
делает то, что вы хотите при проверке орфографии буфера, но не для flyspell. Просто добавьте запись, как
(add-to-list 'ispell-skip-region-alist '("^{{{" . "^}}}"))
К сожалению, заставить Flyspell не так легко игнорировать определенные регионы. Вы должны использовать, flyspell-generic-check-word-predicate
который является функцией. Несколько режимов уже определяют это, поэтому вам нужно добавить следующее в качестве рекомендаций для этих функций. Для простоты я предполагаю, что вы используете режим (я использовал text-mode
ниже), в котором он не определен. Затем вы можете добавить следующее в ваш .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)