Vérification orthographique intelligente en mode org

38

Par défaut, les résultats de l'exécution M-x ispell-bufferen mode org sont très décevants.

  1. Ispell examine les :PROPERTY:tiroirs, qui contiennent généralement des éléments tels que

    :ID:       797495bd-581b-4a42-883b-c2a55a08f08a
    
  2. Il essaie de corriger les déclarations d'org! Par exemple, il se plaint de l' SRCen

    #+BEGIN_SRC emacs-lisp
    
  3. Il va à l'intérieur des org-blocks. Je suppose que cela pourrait être utile pour des blocs tels que #+BEGIN_QUOTE, mais dans les blocs de code source, c'est idiot.

Existe-t-il un package qui corrige tout cela?

J'aimerais beaucoup vérifier mon écriture, mais la quantité de faux positifs que je reçois le rend irréalisable.

Si cela compte, le correcteur orthographique du système d'exploitation est aspell.

Malabarba
la source
Il existe un prédicat flyspell pour org-mode (check (get 'org-mode 'flyspell-mode-predicate)), mais je ne sais pas comment cela pourrait être généralisé ispell-buffer.
legoscia
@legoscia Ispell a une variable appelée ispell-parser, donc le prédicat de flyspell pourrait bien fonctionner avec un wrapper.
Malabarba
1
J'utilise flyspell et hunspell et je ne vois pas ce comportement. Rien dans les lignes avec #+ou dans les blocs de code source n'est pas vérifié. Mais le texte normal sous les en-têtes est coché. J'ai ces derniers dans la configuration de mon Flyspell: (add-hook 'prog-mode-hook 'flyspell-prog-mode),(add-hook 'org-mode-hook 'turn-on-flyspell)
Kaushal Modi
@kaushalmodi Ouais, flyspell est plus intelligent qu'ispell. Malheureusement, flyspell est un peu exigeant pour la puissance de traitement de mon ordinateur portable :(. Ce n'est pas inutilisable, mais c'est un peu embêtant, c'est pourquoi j'ai essayé ispell.
Malabarba
3
Avez-vous vu Can I prevent ispell from checking source blocks?dans orgmode.org/worg/org-faq.html ?
rvf0068 10/1014

Réponses:

26

Comme suggéré par rvf0068 , ispell peut être configuré pour ignorer les régions qui correspondent aux expressions rationnelles. Par exemple, pour sauter :PROPERTIES:et :LOGBOOK:tiroirs ainsi que des SRCblocs, vous pouvez mettre dans votre .emacsfichier:

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

(Je suis nouveau dans StackExchange, donc si j'ai enfreint l'étiquette ou les règles en développant la réponse de rvf0068, faites-le-moi savoir.)

Saint Aardvark le tapis
la source
4
Cela ne me dérange pas du tout, merci pour cette élaboration plus poussée. :)
rvf0068
Voici ce que je voulais qu'ispell
Grettke
C'est utile, mais c'est un trop gros marteau pour moi. J'ai souvent des notes dans mon journal de bord que je voudrais être mis à la poubelle.
Vanden
1
Les régions que j'exclus: github.com/grettke/home/blob/master/ALEC.org#L4546
grettke