Intelligente Rechtschreibprüfung im Organisationsmodus

38

Standardmäßig sind die Ergebnisse der Ausführung M-x ispell-bufferim Organisationsmodus sehr enttäuschend.

  1. Ispell schaut in :PROPERTY:Schubladen, die üblicherweise Dinge wie enthalten

    :ID:       797495bd-581b-4a42-883b-c2a55a08f08a
    
  2. Es wird versucht, org-Anweisungen zu korrigieren! Zum Beispiel beschwert es sich über die SRCin

    #+BEGIN_SRC emacs-lisp
    
  3. Es geht in Org-Blöcke. Ich nehme an, dass dies für Blöcke wie nützlich sein könnte #+BEGIN_QUOTE, aber in Quellcode-Blöcken ist das einfach albern.

Gibt es ein Paket, das all dies behebt?

Ich würde mein Schreiben gerne auf Rechtschreibung prüfen, aber die Menge an Falsch-Positiven, die ich erhalte, macht es unmöglich.

Wenn es darauf ankommt, ist die Rechtschreibprüfung des Betriebssystems aspell.

Malabarba
quelle
Es gibt ein Flyspell-Prädikat für den Org-Modus (check (get 'org-mode 'flyspell-mode-predicate)), aber ich bin nicht sicher, wie das verallgemeinert werden könnte ispell-buffer.
Legoscia
@legoscia Ispell hat eine Variable namens ispell-parser, sodass das Prädikat von flyspell dort gut funktionieren könnte, wenn es von einem Wrapper umgeben ist.
Malabarba
1
Ich benutze Flyspell und Hunspell und sehe dieses Verhalten nicht. Alles, was in Zeilen mit #+oder in Quellcode-Blöcken steht, wird nicht auf Rechtschreibung überprüft. Normaler Text unter Überschriften wird jedoch geprüft. Ich habe diese in meinem flyspell Setup: (add-hook 'prog-mode-hook 'flyspell-prog-mode),(add-hook 'org-mode-hook 'turn-on-flyspell)
Kaushal Modi
@ kaushalmodi Ja, Flyspell ist schlauer als Ispell. Leider ist Flyspell für die Rechenleistung meines Laptops etwas anstrengend :(. Es ist nicht unbrauchbar, aber etwas nervig, weshalb ich es mit Ispell versuchte.
Malabarba
3
Haben Sie Can I prevent ispell from checking source blocks?in orgmode.org/worg/org-faq.html gesehen ?
rvf0068

Antworten:

26

Wie von rvf0068 vorgeschlagen , kann ispell so konfiguriert werden, dass Regionen übersprungen werden, die mit regulären Ausdrücken übereinstimmen. Zum Überspringen von Schubladen :PROPERTIES:und Blöcken können Sie beispielsweise Folgendes in Ihre Datei einfügen::LOGBOOK:SRC.emacs

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

(Ich bin neu bei StackExchange. Wenn ich also die Etikette oder Regeln durch Erweitern der Antwort von rvf0068 gebrochen habe, lass es mich bitte wissen.)

Saint Aardvark der Teppichboden
quelle
4
Ich habe nichts dagegen, danke für die weitere Ausarbeitung. :)
rvf0068
Folgendes wollte ich von ispell ignorieren: github.com/grettke/home/blob/master/TC3F.org
grettke
Das ist nützlich, aber ein zu großer Hammer für mich. Ich habe oft Notizen in meinem LOGBOOK, dass ich gespult werden möchte.
Vanden
1
Die Regionen, die ich ausschließe: github.com/grettke/home/blob/master/ALEC.org#L4546
grettke