Интеллектуальная проверка орфографии в режиме орг

38

По умолчанию результаты работы M-x ispell-bufferв режиме org очень разочаровывают.

  1. Ispell смотрит внутрь :PROPERTY:ящиков, которые обычно содержат такие вещи, как

    :ID:       797495bd-581b-4a42-883b-c2a55a08f08a
    
  2. Он пытается исправить заявления org! Например, он жалуется на SRCин

    #+BEGIN_SRC emacs-lisp
    
  3. Это идет внутри орг-блоков. Я полагаю, что это может быть полезно для блоков вроде #+BEGIN_QUOTE, но в блоках исходного кода это просто глупо.

Есть ли пакет, который исправляет все это?

Я хотел бы проверить правильность написания, но количество ложных срабатываний, которые я получаю, делает его невозможным.

Если это имеет значение, проверка орфографии в ОС является aspell.

Malabarba
источник
Существует предикат flyspell для режима org (проверка (get 'org-mode 'flyspell-mode-predicate)), но я не уверен, как это можно обобщить ispell-buffer.
Легоссия
У @legoscia Ispell есть переменная ispell-parser, поэтому предикат flyspell может хорошо работать там, где есть обертка.
Малабарба
1
Я использую flyspell и hunspell, и я не вижу такого поведения. Все в строках с #+блоками или в блоках исходного кода не проверяется орфографией. Но обычный текст под заголовками проверяется. У меня это в моей установке Flyspell: (add-hook 'prog-mode-hook 'flyspell-prog-mode),(add-hook 'org-mode-hook 'turn-on-flyspell)
Kaushal Моди
@kaushalmodi Да, flyspell умнее, чем ispell. К сожалению, flyspell немного требователен к моей вычислительной мощности ноутбуков :(. Это не непригодно, но немного раздражает, именно поэтому я пробовал ispell.
Малабарба
3
Вы видели Can I prevent ispell from checking source blocks?в orgmode.org/worg/org-faq.html ?
rvf0068 10.10.14

Ответы:

26

Как предложил rvf0068 , ispell может быть настроен на пропуск областей, соответствующих регулярным выражениям. Например, чтобы пропустить :PROPERTIES:и :LOGBOOK:ящики, и SRCблоки, вы можете поместить это в свой .emacsфайл:

(add-to-list 'ispell-skip-region-alist '(":\\(PROPERTIES\\|LOGBOOK\\):" . ":END:"))
(add-to-list 'ispell-skip-region-alist '("#\\+BEGIN_SRC" . "#\\+END_SRC"))

(Я новичок в StackExchange, поэтому, если я нарушил этикет или правила, расширив ответ rvf0068, пожалуйста, дайте мне знать.)

Святой Аардварк Ковровое
источник
4
Я совсем не против, спасибо за дальнейшую разработку. :)
rvf0068
Вот что я хотел, чтобы ispell проигнорировал: github.com/grettke/home/blob/master/TC3F.org
grettke
Это полезно, но слишком большой молот для меня. У меня часто есть заметки в журнале, что я бы хотел, чтобы их катали.
Ванден
1
Регионы, которые я исключаю: github.com/grettke/home/blob/master/ALEC.org#L4546
grettke