Плюсы и минусы различных режимов проверки орфографии в emacs

Мне интересно, может ли кто-нибудь влюбиться в плюсы и минусы разных режимов написания Emacs. Emacswiki-CategorySpelling упоминает три режима проверки орфографии:

  • Режим Flyspell (по умолчанию один)
  • Режим исполнения (кажется, разработан быстрее, чем flyspell).
  • Режим проверки. (предназначенные для общего назначения)

Мне также интересно, какой из этих режимов обеспечивает способ проверки орфографии части буфера в зависимости от его синтаксиса (например, чтобы пропустить части математического режима в документе LaTeX, которые выделены как коричневый в режиме AUCTEX). Flyspell, похоже, не делает этого

Ответ 1

Вы можете выполнять частичный режим flyspell несколькими способами. Один из них - использовать многорежимный подход, в котором вы определяете несколько режимов в одном буфере, один из которых - режим редактирования комментариев (например), в котором включен режим flyspell. Я использовал это для некоторых языков программирования, но я больше не могу найти конфигурацию, поэтому, я думаю, я больше не использую этот язык. Во всяком случае, см. mmm-mode для получения дополнительной информации.

Второй альтернативой является использование "flyspell-prog-mode" (который видит), который устанавливает режим flyspell для определенных частей буфера, определенный в этом случае шрифтом (существуют конкретные грани для строк и комментариев для большинство основных языков программирования). Он использует функцию обратного вызова предиката, которая может быть определена, но вы хотите ее; Я поддерживаю TNT, который является AIM-режимом для Emacs, и мы используем его следующим образом:

(defun tnt-im-mode-flyspell-verify ()
  "This function is used for `flyspell-generic-check-word-p' in TNT."
  (not (get-text-property (point) 'read-only)))

(put 'tnt-im-mode 'flyspell-mode-predicate 'tnt-im-mode-flyspell-verify)
(put 'tnt-chat-mode 'flyspell-mode-predicate 'tnt-im-mode-flyspell-verify)

Относительно flyspell против speck против wcheck - я использовал только режим flyspell. speck, похоже, очень ориентирован на то, что можно просмотреть, что может быть хорошо, но, как правило, я хочу, чтобы весь документ, над которым я работаю, был проверен на проверку орфографии, поэтому я бы этого не хотел. wcheck, похоже, является общим интерфейсом для внешней программы; Думаю, вам придется самим использовать его. flyspell можно использовать двумя разными способами: как-вы-тип, который я обычно использую, и "пакетный режим", где сразу проверяется весь регион или буфер. Первое невероятно быстро, и я никогда не нашел причины искать лучший инструмент. Последний может быть медленным, особенно когда много слов с ошибками и документ большой, но я действительно не могу вспомнить, что ему нужно больше 15 секунд. Во время просмотра экрана в течение 15 секунд и ничего не может показаться долгое время, на самом деле это не так. YMMV, конечно.

Итог: я бы придерживался режима flyspell, предполагая, что он соответствует вашим потребностям, конечно.