Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Klammerinhalte von Rechtschreibprüfung ausnehmen

1 view
Skip to first unread message

Andreas Kohlbach

unread,
Apr 14, 2023, 12:31:21 AM4/14/23
to
Wenn ich mal URLs in "<>" erwähne, werden die - wie gewünscht - nicht der
Rechtschreibprüfung unterzogen. Habe ich aber andere Spitze Klammern, wie
"#secure method=pgpmime mode=signencrypt" mit spitzen Klammern drum (kann
ich hier nicht angeben, sonst wollte Gnus diesen Artikel tatsächlich
verschlüsseln).

Wie kann ich Gnus sagen, alles was in "<>" steht von der Prüfung auszunehmen?
--
Andreas

Stefan Wiens

unread,
Apr 14, 2023, 5:57:04 AM4/14/23
to
Es geht vermutlich um den flyspell-mode?

--
Stefan

Stefan Wiens

unread,
Apr 16, 2023, 4:25:34 AM4/16/23
to
Andreas Kohlbach <a...@spamfence.net> writes:
> Ist das identisch zu ispell? Dann ja.

Es gibt eine Variable, mit der man bestimmte Bereiche von der Prüfung
ausschließen kann:

ispell-skip-region-alist

Damit habe ich aber noch nie herumgespielt.

Man sollte jedenfalls sehr genau darauf achten, dass die
regular expression nicht zu greedy ist.

--
Stefan

Stefan Wiens

unread,
Apr 16, 2023, 5:18:25 AM4/16/23
to
Man könnte ja naiv sein und
(add-to-list 'ispell-skip-region-alist '("\\b<[^>]*>\\b"))
ausführen. Aber ein Größerzeichen "<" kann auch
sonst irgendwo stehen und dann unterbleibt die Prüfung
ab dort. Das ist ungetestet und wahrscheinlich ausbaufähig.

Möglicherweise will man die Variable mit
make-local-variable Buffer-local machen, falls man diese
Ausnahmebehandlung nur im Message-Mode wünscht.

Also alles in den message-mode-hook packen. Du kannst
ja deine Lösung hier vorstellen.

--
Stefan

Stefan Wiens

unread,
Apr 17, 2023, 10:09:53 AM4/17/23
to
Andreas Kohlbach <a...@spamfence.net> writes:
> LISP bereitet mir, wie die meisten anderen Programmiersprachen mit zu
> vielen Klammern Kopfschmerzen. ;-) Ich poste mal, was ich habe (was URLs
> *nicht* von der Prüfung ausnimmt):
>
> (defun my-message-setup ()
> (make-local-variable 'ispell-skip-region-alist)
> (setq ispell-skip-region-alist
> (cons '("^[>|]+.*$") ispell-skip-region-alist))
> (setq ispell-skip-region-alist (cons
> '("^.+\\(schreibt\\|wrote\\|202\\|gpgmime|^<\\):$")
> ispell-skip-region-alist))
> )
>
> Das mag Jahrzehnte alt sein...

Da sind ja schon einige Voraussetzungen vorhanden, da braucht man nur
eine Kopie des setq-Ausdrucks mit geeigneter regexp hinzufügen, also, um
dein Schema beizubehalten,

(setq ispell-region-alist
(cons '("<[^>]*>")
ispell-region-alist))

dort vor der schließenden Klammer einfügen (und mit indent-region die
Formatierung überarbeiten lassen).

add-to list macht das ähnlich, vermeidet aber doppeltes Hinzufügen.

Bei meinem o. g. Vorschlag sind die "\\b" subobtimal bis redundant,
denn "<" und ">" sind in der syntax class table normalerweise
sowieso nicht Bestandteil eines Worts. Will man stattdessen mit
"\\s-" auf Leerraum in der Umgebung testen, funktioniert es am
Anfang und am Ende nicht und man braucht Sonderbehandlung
(was kein Hexenwerk ist):

"\\(^\\|\\s-\\)<[^>]*>\\(\\s-\\|$\\)"

Die Lesbarkeit wird natürlich nicht besser.
Also solltest du etwas genauer beschreiben, welche Textteile
ausgenommen werden sollen.

--
Stefan
0 new messages