Spellchecker auf der Konsole: Ispell und Aspell

Aus LinuxUser 12/2005

Spellchecker auf der Konsole: Ispell und Aspell

Weg mit den Fipptehlern!

Vor Vertippern und Buchstabenverdrehern ist niemand sicher – Rechtschreibprogramme unterstützen Sie bei der Austreibung des Fehlerteufels. Ispell und Aspell übernehmen diesen Job auf der Kommandozeile.

In Office-Pakete und Mail-Programme integrierte Rechtschreibprüfungen spüren Tippfehler auf und schlagen alternative Schreibweisen vor. Ispell und Aspell lesen auf der Kommandozeile Korrektur und ersetzen zwar nicht immer den Griff zum Duden, erweisen sich jedoch als zuverlässige Helfer.

Ispell hat bereits einige Jährchen auf dem Buckel und ist schon lange auf verschiedenen Unix-Derivaten verfügbar. Als Nachfolger schickt das GNU-Projekt Aspell ins Rennen – das Programm bringt viele Wörterbücher für die verschiedenen Sprachen mit und kann im Gegensatz zu Ispell auch mit UTF-8 umgehen.

Der Artikel zeigt, wie Sie auf der Kommandozeile Korrektur lesen, verrät Tipps und Tricks zur Benutzung und zeigt, wie Sie die beiden Tools aus den Editoren Vim und (X)Emacs heraus aufrufen.

Einfach Ispell

Ispell arbeitet interaktiv auf der Kommandozeile. Findet der Spell-Checker einen Fehler, schlägt er in den meisten Fällen alternative Schreibweisen vor. Wollen Sie den Vorschlag nicht übernehmen, fügen Sie das Wort dem eigenen Wörterbuch hinzu oder ignorieren den Begriff für den Rest des Dokuments.

Der einfache Programmaufruf lautet

ispell Dateiname

Eventuell müssen Sie Ispell zusätzlich mit der Option -d (wie englisch “dictionary”) mitteilen, welches Wörterbuch gewünscht ist. Welche Wortlisten auf Ihrem System zur Verfügung stehen, erfahren Sie durch einen Blick ins Verzeichnis /usr/lib/ispell (Abbildung 1): Dort sollten mehrere Dateien mit der Endung .aff liegen – Ispell verwaltet in diesen Wortlisten die Silbenregeln und Umlautkodierungen der jeweiligen Sprache.

Abbildung 1: Auf diesem Rechner versteht Ispell Deutsch nach alter und neuer Rechtschreibung sowie britisches und amerikanisches Englisch.

Abbildung 1: Auf diesem Rechner versteht Ispell Deutsch nach alter und neuer Rechtschreibung sowie britisches und amerikanisches Englisch.

Je nach Distribution finden Sie hier unterschiedliche Einträge für die Wörterbücher. Unter Suse Linux heißt die Wortliste zur neuen deutschen Rechtschreibung beispielsweise /usr/lib/ispell/german.aff (Paket ispell-ngerman), unter Debian GNU/Linux ist das ngerman.aff bzw. die Verknüpfung ndeutsch.aff (Paket ingerman).

Um die Textdatei mit dem Wörterbuch zur neuen deutschen Rechtschreibung nach Fehlern zu durchforsten, tippen Sie

ispell -d german Dateiname

bzw.

ispell -d ngerman Dateiname

Auf manchen Linux-Distributionen haben die Wörterbücher andere Namen, beispielsweise deutsch. Damit Umlaute und Sonderzeichen richtig kodiert werden, ist es wichtig, mit der Option -T einen Zeichensatz zu definieren. So erkennt Ispell mit dem Befehl

ispell -d ngerman -T latin1 Dateiname

Umlaute, die gemäß dem Zeichensatz ISO 8859-1 kodiert sind. UTF-8 spricht Ispell nicht; wer diesen Zeichensatz einsetzt, muss auf Aspell (siehe Abschnitt Alternative Aspell) ausweichen.

Die Optionen für Wörterbuch und Zeichensatz müssen Sie nicht jedes Mal angeben, sondern tragen sie in die Bash-Konfigurationsdatei ~/.bashrc im eigenen Home-Verzeichnis ein:

export DICTIONARY=german
export CHARSET=latin1

Anschließend lesen Sie die Konfigurationsdatei mit dem Befehl

source ~/.bashrc

neu ein.

Interaktion gefragt

Ispell präsentiert unbekannte Worte in der oberen Zeile. Sofern der Spell Checker im Wörterbuch ähnliche Begriffe entdeckt, bietet er diese als durchnummerierte Alternativen an (Abbildung 2). Um einen solchen Vorschlag zu übernehmen, drücken Sie einfach die entsprechende Ziffer, dann ersetzt Ispell das Wort.

Abbildung 2: Ispell bietet ähnliche Worte als Alternativen an.

Abbildung 2: Ispell bietet ähnliche Worte als Alternativen an.

Wollen Sie das als fehlerhaft vermutete Wort hingegen nicht ersetzen, akzeptieren Sie es entweder über Druck auf die Leertaste ein einziges Mal, mit [A] für den Rest der Ispell-Sitzung oder über [I] dauerhaft. Im letzten Fall trägt Ispell den Begriff in Ihr persönliches Wörterbuch ein und wird sich nie wieder darüber beschweren.

Die persönlichen Wortlisten finden Sie als versteckte Dateien in Ihrem Home-Verzeichnis. Der Dateiname setzt sich aus .ispell_ und dem Namen des verwendeten Wörterbuchs zusammen; haben Sie beispielsweise mit der Wortliste ngerman gearbeitet, heißt das zugehörige persönliche Wörterbuch .ispell_ngerman.

Hat Ispell einen Fehler entdeckt, bietet aber keine oder keine vernünftige Alternative an, drücken Sie die Taste [R] (wie englisch “replace” = “ersetzen”) und geben an der Eingabeaufforderung Ihre gewünschte Änderung ein. Ispell ersetzt das Wort nun im gesamten Text.

Das Ende vom Lied

Ispell beendet sich nach jedem Korrekturlauf von selbst. Wer den Spell Checker frühzeitig verlassen will, drückt z. B. [Q], um alle Änderungen zu verwerfen und das Programm zu beenden. Ispell fragt zur Sicherheit noch einmal nach:

Are you sure you want to throw away your changes?

Drücken Sie jetzt entweder [Y], um das Programm sofort zu beenden, oder [N], um mit dem Korrekturlauf fortzufahren. Alternativ schließen Sie Ispell mit Druck auf [X]: Dann speichert der Spell Checker alle bis zu diesem Punkt gemachten Änderungen und beendet sich.

Sicherungskopien erstellen

Zusätzliche Sicherheit bietet Ispell, wenn Sie das Programm mit dem Parameter -b starten. Der Spell Checker legt dann für jede überprüfte Datei ein Backup an. Die Sicherungskopien tragen die Dateiendung .bak oder ~ und enthalten den Originaltext.

Auf vielen Distributionen erstellt Ispell Backups, ohne dass Sie dies über den Aufrufparameter definieren müssen. Das Verhalten ist bereits vom Maintainer beim Bauen des Pakets festgelegt worden. Sind die Sicherungskopien nicht erwünscht, schalten Sie das Feature mit dem Parameter -x.

Andere Formate

Ispell kann nicht nur reine Textdateien korrigieren, sondern “spricht” auch HTML und TeX/LaTeX. Alle Dateien, die auf .html bzw. .htm enden, identifiziert Ispell automatisch als HTML-Dateien. Dann ignoriert der Spell Checker beim Korrekturlauf alle Tags (die Einträge zwischen den spitzen Klammern). Einzige Ausnahme ist das ALT-Attribut, mit dem Sie alternativen Text für ein eingebundenes Bild einfügen.

Für den Fall, dass die Dateiendung nicht gesetzt ist oder in Großbuchstaben (.HTM) vorliegt, geben Sie beim Aufruf an, dass es sich um eine HTML-Datei handelt:

ispell -H Datei.HTM

Gleiches funktioniert für XML- und SGML-Dateien – geben Sie beim Ispell-Start dem Programm -H mit auf den Weg, ignoriert der Spell Checker die Tags bei der Rechtschreibprüfung. (Bei manchen Distributionen, z. B. Debian, ist -h (mit kleinem “h”) die richtige Option, bei anderen, z. B. Suse, ist es -H.)

Auch TeX-/LaTeX-Dateien erkennt Ispell an der Dateiendung .tex und klammert Formatanweisungen aus. Dabei orientiert sich Ispell am Backslash, auf den für gewöhnlich Steueranweisungen des Textsatzsystems folgen; Text, der sich in geschweiften Klammern befindet, wird allerdings korrigiert. Kommentare, die in TeX-/LaTeX-Dateien durch ein Prozentzeichen % gekennzeichnet sind, erkennt der Spell Checker und überprüft sie ebenfalls auf Vertipper.

Alternative Aspell

Als alternativer Spell Checker steht Aspell auf der Kommandozeile zur Verfügung. Dieses Programm soll Ispell irgendwann ablösen und bietet jetzt schon einiges mehr: So unterstützen aktuelle Versionen (0.60.x) beispielsweise den Zeichensatz UTF-8. Die allgemeine Syntax lautet:

aspell -c Dateiname

In der Regel ist es nicht nötig, explizit ein Wörterbuch anzugeben, da Aspell die eigenen Spracheinstellungen auswertet. Erhalten Sie allerdings eine Fehlermeldung der Art

Fehler: No word lists can be found for the language "de_DE".

überprüfen Sie, ob Sie das deutsche Sprachpaket installiert haben. Welche Sprachen Aspell “spricht”, finden Sie schnell auf der Kommandozeile heraus, indem Sie aspell --help | less tippen; im Bereich Available Dictionaries: sehen Sie die auf Ihrem System verfügbaren Wortlisten, die standardmäßig in /usr/lib/aspell-0.60/ liegen. Eventuell fehlende Wörterbücher installieren Sie über den Paket-Manager Ihrer Distribution (Abbildung 3) nach.

Abbildung 3: Aspell bietet Wörterbücher in vielen verschiedenen Sprachen an.

Abbildung 3: Aspell bietet Wörterbücher in vielen verschiedenen Sprachen an.

Ein Wörterbuch geben Sie genau wie für Ispell mit der Option -d explizit an; um nach neuer deutscher Rechtschreibung zu prüfen, wählen Sie -d de-neu. (Suse Linux installiert standardmäßig nur das deutsche Wörterbuch.)

Ist der Text UTF-8-kodiert, teilen Sie Aspell dieses zusätzlich über --encoding=utf-8 mit.

Interaktion gefragt

Aspell hebt unbekannte Begriffe hervor und bietet durchnummerierte Ersetzungsvorschläge an. Um einen solchen Vorschlag zu übernehmen, geben Sie die entsprechende Ziffer ein und drücken [Eingabe].

Wollen Sie einen Begriff durch etwas völlig anderes ersetzen, drücken Sie [R] und geben das Wort ein. Anders als bei Ispell ersetzt das Programm den Begriff nur an der aktuellen Position – soll Aspell alle Vorkommen im gesamten Text austauschen, verwenden Sie stattdessen die Tastenkombination [Umschalt]+[R].

Ein falsch geschriebenes Wort ignorieren Sie über Druck auf [I] genau an dieser Stelle; [Umschalt]+[I] lässt es für den Rest der Aspell-Sitzung außer Acht. Um ein Wort dauerhaft ins persönliche Wörterbuch aufzunehmen, drücken Sie [A]. Private Wortlisten legt auch Aspell im Home-Verzeichnis ab – ihre Dateinamen setzen sich (ähnlich wie bei Ispell) aus .aspell. und dem jeweiligen Wörterbuch zusammen.

Auch Aspell beendet sich automatisch, nachdem die Prüfung abgeschlossen ist; alternativ verlassen Sie das Programm über [X] und speichern alle bis zu diesem Punkt vorgenommenen Änderungen. Wollen Sie die Rechtschreibprüfung abbrechen und die Änderungen verwerfen, drücken Sie [B] und bestätigen die folgende Sicherheitsabfrage.

Formatfragen

Aspell unterstützt genau wie Ispell verschiedene Dateiformate. Verwenden Sie beispielsweise die Option -H (für HTML/SGML/XML) oder -t (für TeX/LaTeX).

Wer ganz auf den neueren Spell Checker umsteigen möchte, findet im Aspell-Paket das Perl-Skript aspell-import: Es importiert alte persönliche Ispell- und Aspell-Wortlisten und trägt sie ins Aspell-Wörterbuch im Home-Verzeichnis:

$ aspell-import
Processing "~/.ispell_german", lang = de
Merging de
@(#) International Ispell Version 3.1.20 (but really Aspell 0.60.3-20050121)

Wie Sie Ispell oder Aspell direkt aus dem Editor aufrufen, verrät der Kasten Spellchecker in Vim und Emacs.

Spellchecker in Vim und Emacs

Ispell und Aspell arbeiten in vielen KDE- und Gnome-Anwendungen im Hintergrund und prüfen Ihre Dokumente per Mausklick. Doch auch Vim und (X)Emacs überreden Sie schnell zur Kooperation.

Mit einer einzigen Zeile in der Vim-Konfigurationsdatei (~/.vimrc) legen Sie ein Makro an. Um den Spellchecker beispielsweise auf die Funktionstaste [F10] zu legen, tragen Sie in die Datei folgende Zeile ein, wenn Sie mit Ispell arbeiten:

map <F10> :w!<CR>:!ispell %<CR>:e! %<CR>

Bevorzugen Sie Aspell, lautet der Eintrag entsprechend:

map <F10> :w!<CR>:!aspell -c %<CR>:e! %<CR>

Eventuelle Kommandozeilenoptionen tragen Sie jeweils hinter dem Befehl ein.

Wer mit Emacs oder Xemacs arbeitet, fügt in die entsprechende Konfigurationsdatei (~/.emacs oder ~/.xemacs/custom.el) die Zeile

(setq-default ispell-program-name "aspell")

bzw.

(setq-default ispell-program-name "ispell")

ein.

LinuxUser 12/2005 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben