Inteligentne sprawdzanie pisowni w trybie org

38

Domyślnie wyniki działania M-x ispell-bufferw trybie org są bardzo rozczarowujące.

  1. Ispell zagląda do :PROPERTY:szuflad, które zwykle zawierają takie rzeczy

    :ID:       797495bd-581b-4a42-883b-c2a55a08f08a
    
  2. Próbuje poprawić oświadczenia organizacji! Na przykład, skarży się na SRCIN

    #+BEGIN_SRC emacs-lisp
    
  3. Wchodzi w org-bloki. Przypuszczam, że może to być przydatne w przypadku bloków takich #+BEGIN_QUOTE, ale w blokach kodu źródłowego jest to po prostu głupie.

Czy istnieje pakiet, który to wszystko naprawia?

Chciałbym sprawdzić pisownię, ale ilość fałszywie pozytywnych informacji, które otrzymuję, sprawia, że ​​jest to niewykonalne.

Jeśli to ważne, sprawdzaniem pisowni w systemie operacyjnym jest aspell.

Malabarba
źródło
Istnieje predykat Flyspell dla trybu org (sprawdź (get 'org-mode 'flyspell-mode-predicate)), ale nie jestem pewien, jak można by to uogólnić ispell-buffer.
legoscia
@legoscia Ispell ma zmienną o nazwie ispell-parser, więc predykat flyspell może tam dobrze działać z otoczką.
Malabarba
1
Używam flyspell i hunspell i nie widzę tego zachowania. Wszystko w liniach z #+lub w blokach kodu źródłowego nie jest sprawdzane pod kątem pisowni. Ale normalny tekst pod nagłówkami jest sprawdzany. Mam je w mojej konfiguracji flyspell: (add-hook 'prog-mode-hook 'flyspell-prog-mode),(add-hook 'org-mode-hook 'turn-on-flyspell)
Kaushal Modi
@kaushalmodi Tak, flyspell jest mądrzejszy niż ispell. Niestety, flyspell jest trochę wymagający dla mocy obliczeniowej moich laptopów :(. Nie jest bezużyteczny, ale jest trochę denerwujący, dlatego próbowałem ispell.
Malabarba
3
Czy widziałeś Can I prevent ispell from checking source blocks?na orgmode.org/worg/org-faq.html ?
rvf0068,

Odpowiedzi:

26

Jak sugeruje rvf0068 , ispell można skonfigurować tak, aby pomijał regiony pasujące do wyrażeń regularnych . Na przykład, aby przeskoczyć :PROPERTIES:i :LOGBOOK:szuflad, a także SRCbloki, można umieścić to w .emacspliku:

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

(Jestem nowy w StackExchange, więc jeśli złamałem etykietę lub reguły, rozwijając odpowiedź rvf0068, daj mi znać.)

Święty Aardvark Wykładzina
źródło
4
Nie mam nic przeciwko, dziękuję za dalsze opracowanie. :)
rvf0068
Oto, co chciałem zignorować, ispell: github.com/grettke/home/blob/master/TC3F.org
grettke,
To przydatne, ale dla mnie za duży młot. W moim LOGBOOKU często mam notatki, że chciałbym być obrzucony szpulą.
vanden
1
Regiony, które wykluczam: github.com/grettke/home/blob/master/ALEC.org#L4546
grettke