Как включить режим flyspell для автоматического использования для каждого файла и каждого основного режима сразу после запуска Emacs?
Кроме того, существует ли XML-словарь, который не маркирует теги XML как слова с ошибками?
Как включить режим flyspell для автоматического использования для каждого файла и каждого основного режима сразу после запуска Emacs?
Кроме того, существует ли XML-словарь, который не маркирует теги XML как слова с ошибками?
Скорее всего, вы не хотите, чтобы flyspell-mode
разрешен для всех режимов, но вместо этого требуется flyspell-mode
для режимов, которые предназначены главным образом для текста (текстовый режим, режим сообщений и т.д.) и flyspell-prog-mode
для режимов программирования (C/С++, Java, Ruby, Lisp и т.д.). Разница между двумя режимами заключается в том, что первая проверяет все слова, тогда как flyspell-prog-mode
проверяет только слова в комментариях и строках (тем самым избегая проверки кода, который обычно не является словами).
В любом случае, нет единого места, чтобы включить flyspell во всех файлах/буферах, потому что он был написан, чтобы всегда быть локальным буфером. Близким приближением было бы
(defun turn-on-flyspell () (flyspell-mode 1))
(add-hook 'find-file-hooks 'turn-on-flyspell)
Это не распространяется на буферы, у которых нет связанных файлов, и я не советую использовать его, потому что он не различает режимы программирования и режимы не-программирования, которые, как мне кажется, полезны.
Поскольку нет способа узнать, являются ли определенные режимы режимом программирования или нет, вам нужно вручную добавить настройки для всех режимов программирования, о которых вы заботитесь, с чем-то вроде:
(mapcar (lambda (mode-hook) (add-hook mode-hook 'flyspell-prog-mode))
'(c-mode-common-hook tcl-mode-hook emacs-lisp-mode-hook
ruby-mode-hook java-mode-hook))
Примечание: два куска кода, вероятно, плохо сочетаются.
И, что касается XML, у flyspell уже есть настройки для sgml-mode
, html-mode
и nxml-mode
, чтобы не проверять орфографические метки (как на Emacs 23.2). Если вы используете старую версию Emacs (назад к 21.1), вы можете добавить это в свой .emacs, чтобы получить поддержку nxml-mode
:
(put 'nxml-mode 'flyspell-mode-predicate 'sgml-mode-flyspell-verify)
Ответ от этого вопроса работал у меня:
Как включить автоматическую проверку орфографии по умолчанию?
Кроме того, он кажется более общим, в отличие от текущего проголосовавшего ответа. Добавьте следующие строки в .emacs
или init.el
.
(add-hook 'text-mode-hook 'flyspell-mode)
(add-hook 'prog-mode-hook 'flyspell-prog-mode)
В файл Emacs init можно добавить следующее:
(Flyspell-все-режимы)
В описании функции указано:
Использовать Flyspell во всех основных режимах. Применяется как к существующим буферам, так и к буферов, которые вы впоследствии создали. Отключает `flyspell-text-modes ' если включено.
EDIT: По-видимому, вышеуказанная функция включена только в версию flyspell, которая находится в Emacs 24. Если вы не можете использовать эту версию, вместо этого вы должны использовать решение, предложенное Trey, чтобы "полу-глобально" включить flyspell. Чтобы отключить проверку тегов XML с помощью NXML, вы можете добавить следующую строку в файл инициализации Emacs:
(put 'nxml-mode 'flyspell-mode-predicate 'sgml-mode-flyspell-verify)
Примечание. Эта строка уже находится в файле flyspell.el, включенном в Emacs 24.