Как исключить {{{…}}} в flyspell-mode и flyspell-buffer?

Я редактирую много страниц MoinMoinWiki в своих emacs и люблю режим flyspell-mode . Предварительно отформатированный материал в {{{...}}} (в нескольких строках), а также «обратный ход обратного хода» обычно содержит фрагменты кода программирования, которые не имеют смысла для проверки орфографии.

Могу ли я настроить ispell / flyspell чтобы не включать код программирования?

  • Как преобразовать словарь aspell в простой список слов?
  • Пример:

     Bla bla lorem ipsum die Standardcontainer wie `vector` eine ''Methode'' haben, die ein einzelnes Argument nimmt, also `vector<T>::swap(vector<T)>&)`. Bla bla und diese `swap`-Methoden sind von dieser Sorte. Warum das so ist, sehen wir gleich. Bla bla was '''kanonisch''' ist bla bla Template-Funktion<<tlitref(stdswap)>> {{{#!highlight c++ title="Man könnte 'std::swap@LT@@GT@' spezialisieren" namespace std { template<> // wir können durchaus im namespace std spezialisieren void swap<Thing>(Thing&, Thing&) { // ...hier swappen... } } }}} Nun, das würde sicherlich in diesem Fall helfen, doch es bleibt ein größeres Problem: Eine teilweise Spezialisierung lorem ipsum bla bla 

  • Размер шрифта emacs в ubuntu
  • Emacs: вывести режим яруса по умолчанию для буфера компиляции?
  • Как я могу получить emacs под окнами для автозаполнения путей в буферах оболочки с помощью «\» вместо «/»?
  • Emacs: отображение с использованием шестнадцатеричных escape-последовательностей
  • Отключить второе автоматическое сообщение Emacs nag?
  • Как сделать select column, а затем редактировать в GNU Emacs?
  • One Solution collect form web for “Как исключить {{{…}}} в flyspell-mode и flyspell-buffer?”

    Переменная 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) 
    Давайте будем гением компьютера.