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

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

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

Пример:

 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 

  • Беспокойство
  • Aquamacs: как переделать Capslock в Meta Key на уровне приложения?
  • Установка моноширинного шрифта на Emacs?
  • Как установить Emacs (текстовый редактор) на ubuntu Linux
  • Полноэкранный Emacs в OSX
  • Как связать CMD + W, чтобы убить текущий буфер в Emacs на OSX?
  • Изменение привязок emacs в Mac OS X для команды meta
  • Настройка экспортного шаблона org-mode?
  • 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) 
    Interesting Posts

    Некоторые юникодовые альт-коды не работают

    Как добавить субтитры в другие места

    Прочитать файл по строкам

    В чем разница между командами find и findstr в Windows?

    Как перенаправить определенные приложения через VPN и другие, чтобы использовать мое «стандартное» соединение в OSX 10.6?

    Как открыть монитор ресурсов в Windows 8?

    Как запустить мой раздел ubuntu в Windows? VMware?

    Сколько энергии использует жесткий диск?

    Как я могу сделать Firefox аннотированные ссылки, которые указывают на такие файлы, как PDF-файлы, которые не будут открываться в Firefox?

    Передача учетных данных с помощью Pushd? Другая команда?

    Откройте текстовый файл в VIM cygwin

    Загрузить Flash-видеофайл с любого видео-сайта?

    Bbswitch не отключает дискретную графику

    Есть ли исправление для ошибки «Слишком много открытых файлов в системе» на OS X 10.7.1?

    Хорошее решение для преобразования текста в речь для Windows

    Давайте будем гением компьютера.