Zum Inhalt

Zu überarbeiten

Die Informationen auf dieser Seite sind ganz oder teilweise veraltet. Hilf mit, die Inhalte zu sichten und auf den neuesten Stand zu bringen oder entsprechend zu entfernen.

Zu beachten

Die resultierenden XML-Dateien können von der aktuellen KTouch-Version (19.12.3) nicht mehr verarbeitet werden aufgrund des geänderten Formats. Um SortWords weiter zu verwenden, muss zuerst das Outputformat angepasst werden.

SortWords🔗

SortWords ist ein Bash-Skript, dass eine Liste von Wörtern nach ihren auftretenden Buchstaben sortiert. Damit können Buchstaben in KTouch-Lektionen der Reihe nach eingeführt werden und in jeder Stufe nur die Wörter abgefragt werden, deren Buchstaben bereits bekannt sind.

Der Tippkurs Deutsch (Neo2 10.000 Wörter) wurde mit diesem Skript erstellt.

Download🔗

Alle Dateien befinden sich im Repository unter ktouch/tools/sortWords. Dabei sind nur folgende Dateien zum Ausführen notwendig:

  • in.txt - Eine beliebige Textdatei mit den zu sortierenden Wörtern.
  • key.conf - Konfigurationsdatei mit der Reihenfolge der Buchstaben
  • sortWords.sh - Das Skript selbst

Die beiden out-Dateien sind Beispiel-Ausgaben.

Einrichten🔗

in.txt🔗

Zum Einrichten lässt sich einerseits die Eingabedatei in.txt beliebig wählen. Sie enthält die zu sortierenden Wörter und muss UTF-8 kodiert sein. Die Wörter müssen durch eine beliebige Anzahl von Whitespacezeichen (also Windows-Zeilentrennzeichen, Linux-Zeilentrennzeichen, Leerzeichen, Tabulator, ...) von einander getrennt sein. Die Datei im Repository enthält die 10.000 häufigsten Wörter der deutschen Sprache.
Quelle: Wortschatz Universität Leipzig

key.conf🔗

Zum anderen lässt sich über die Datei key.conf die Reihenfolge der in der KTouch-Lektion zu erlernenden Buchstaben festlegen. Zum Editieren der Datei sind in ihr einige Kommentare als Hilfe gestellt. Die vorgegebene Datei ist auf die erste Ebene der Neo-Tastaturbelegung eingestellt.

Syntax🔗

Nach dem Download lässt sich die Syntax über den Befehl

./sortWords.sh --help
einblenden:
Usage: ./sortWords.sh [OPTIONEN]
Liest aus der Datei "in.txt" alle Wörter ein und gibt diese sortiert nach der in
der Datei "key.conf" festgelegten Reihenfolge weider aus.
Sie werden einmal in eine Klartextdatei "out.txt" und in eine KTouch-Lektion
"out.ktouch.xml" geschrieben.
Dabei ist egal, wie die Worte in "in.txt" voneinander getrennt sind.
(Windows-Zeilentrennzeichen, Linux-Zeilentrennzeichen, Leerzeichen, Tabulator, ...)

  -k  berücksichtige nur komplett klein geschriebene Worte
  -w  wandle alle Worte in klein-schreibeise um. Setzt automatisch die Option '-k'
  -e  entfernt doppelt vorkommende Worte und sortiert dabei die Ergebnisliste nach
      dem Alphabet. Empfehlenswert in Verbindung mit der Option '-w', da hierbei zwei
      gleiche Worte auftreten können, die sich zuvor durch Groß/kleinschreibung
      unterschieden haben
  -f:<SPALTEN>  faltet die Ausgabedatei "out.txt" nach der angegebenen Anzahl von
                Spalten. Standard=80
  -z:<ZEILEN>   maximale Anzahl an Zeilen pro Trainings-Lektion-Stufe.
                (WARNUNG: Ausführung dauert sehr lange!)

Beispiel: ./sortWords.sh -w -e -z:4

Bei den Optionen ist zu beachten:

  • -f bestimmt die maximale Zeilenlänge in jeder Stufe. Sofern -f nicht angegeben ist, wird das Skript mit dem Standardwert -f:80 ausgeführt
  • Ohne der Option -z wird pro Stufe genau ein neuer Buchstabe eingeführt. Dadurch kann aber bei einer Eingabeliste von vielen Tausend Wörtern schnelle eine Stufe der Lektion aus mehreren Hundert Wörtern bestehen. Mit -z:<ZEILE> wird die maximale Anzahl an Zeilen pro Stufe begrenzt auf <ZEILE>. Die Ausführung des Skriptes dauert mit dieser Option unverhältnismäßig lange, da sie schlecht implementiert ist (ich habe es halt nicht besser hinbekommmen ;-) )

Ausführen🔗

Es wird der in der Hilfe angegebene Beispiel-Aufruf ausgeführt:

Beispiel: ./sortWords.sh -w -e -z:4
mit den Logmeldungen:
Zeichenreihenfolge wird geladen: Aus Datei "key.conf"...OK
Quelldatei "in.txt" wird eingelesen...OK
Wörter gesamt = 10170
Formatiere den Quelltext...OK
Nach dem Filtern bleiben 9204 Wörter übrig.

Buchstaben | Anzahl der neuen Wörter
=====================================
en | 3
ar | 9
ud | 54
it | 141
l | 109
g | 281
c | 10
h | 318
o | 180
s | 926
w | 376
k | 476
p | 367
m | 803
z | 492
b | 1163
ä | 441
, | 0
v | 653
f | 1109
ö | 245
. | 0
x | 51
q | 22
ü | 514
j | 165
ß | 216
y | 80

Falte die Datei "out.txt" nach spätestens 80 Spalten...OK
Trainings-Lektions-Stufen werden auf 4 Zeilen begrenzt............................OK
Erstelle KTouch-Lektion "out.ktouch.xml"...OK

In Verbindung mit den beiden vorgegebenen Dateien in.txt und key.conf erstellt das Skript die bereits im Repository hinterlegten Ausgabedateien:

  • out.txt - Die sortierten Wörter in einem Klartextformat
  • out.ktouch.xml - Die sortierten Wörter als KTouch-Lektion

Dabei bewirkten die verwendeten Optionen:

  • Durch die Option -w wurden alle Wörter in kleinschreibweise umgewandelt, damit zum vereinfachten Lernen von Neo der Fokus auf den neu positionierten Buchstaben liegt.
  • Die Eingabeliste in.txt ist nicht besonders gut bearbeitet. Es wiederholen sich ständig Wörter. Mit der Option -e werden die doppelten Einträge entfernt und die Liste (als Nebeneffekt) nach dem Alphabet sortiert. Dadurch werden Worte mit ähnlichem Anfang direkt hintereinander getippt. Beispiel:

    trage tragen training traurig
    
    Als Vorteil prägt man sich beim Schreiben die zu tippende Buchstabenfolge besser ein.

  • Mit der Option -z:4 wird verhindert, dass eine Stufe aus mehreren Hundert Wörtern bestehen kann. Pro Stufe sind also 4 Zeilen zu je höchstens 80 Zeichen erlaubt. Das bläht die Lektion auf annährend 300 Stufen auf.