Corrección ortográfica inteligente en modo org


38

Por defecto, los resultados de la ejecución M-x ispell-bufferen modo org son muy decepcionantes.

  1. Ispell mira dentro de los :PROPERTY:cajones, que comúnmente contienen cosas como

    :ID:       797495bd-581b-4a42-883b-c2a55a08f08a
    
  2. ¡Intenta corregir las declaraciones org! Por ejemplo, se queja de la SRCin

    #+BEGIN_SRC emacs-lisp
    
  3. Va dentro de los org-blocks. Supongo que esto podría ser útil para bloques como #+BEGIN_QUOTE, pero en bloques de código fuente eso es una tontería.

¿Hay algún paquete que solucione todo esto?

Me encantaría revisar mi escritura, pero la cantidad de falsos positivos que recibo hace que sea inviable.

Si es importante, el corrector ortográfico del sistema operativo está aspell.


Hay un predicado de flyspell para org-mode (check (get 'org-mode 'flyspell-mode-predicate)), pero no estoy seguro de cómo podría generalizarse ispell-buffer.
legoscia

@legoscia Ispell tiene una variable llamada ispell-parser, por lo que el predicado de flyspell podría funcionar bien con una envoltura a su alrededor.
Malabarba

1
Uso flyspell y hunspell y no veo ese comportamiento. Cualquier cosa en líneas con #+o en bloques de código fuente no se verifica ortográficamente. Pero el texto normal debajo de los encabezados está marcado. Tengo estos en mi configuración flyspell: (add-hook 'prog-mode-hook 'flyspell-prog-mode),(add-hook 'org-mode-hook 'turn-on-flyspell)
Kaushal Modi

@kaushalmodi Sí, flyspell es más inteligente que ispell. Desafortunadamente, flyspell es un poco exigente para el poder de procesamiento de mis computadoras portátiles :(. No es inutilizable, pero es un poco molesto, por eso estaba intentando ispell.
Malabarba

3
¿Has visto Can I prevent ispell from checking source blocks?en orgmode.org/worg/org-faq.html ?
rvf0068

Respuestas:


26

Como sugirió rvf0068 , ispell se puede configurar para omitir regiones que coinciden con expresiones regulares. Por ejemplo, para saltar :PROPERTIES:y los :LOGBOOK:cajones, así como los SRCbloques, puede poner esto en su .emacsarchivo:

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

(Soy nuevo en StackExchange, así que si he roto la etiqueta o las reglas al ampliar la respuesta de rvf0068, hágamelo saber).


44
No me importa en absoluto, gracias por la mayor elaboración. :)
rvf0068

Esto es lo que quería que ispell ignorara: github.com/grettke/home/blob/master/TC3F.org
grettke

Eso es útil, pero un martillo demasiado grande para mí. A menudo tengo notas en mi LOGBOOK que me gustaría que me tiraran el carrete.
vanden


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.