Hallo Mœsi,
Matthias Wächter schrieb am 05.05.2009 09:19 Uhr:
Meinst du wirklich
Eingabe Ausgabe
ß → ß
ß → <backspace> ſ s
Nein, auf keinen Fall! Wie Du selber geschrieben hast, hat das
nachträgliche Löschen von bereits ausgegeben Zeichen mit Backspace nur
Probleme bereitet und sollte von uns auch zukünftig vermieden werden.
Ab/seit r1814 gibt es in neo-vars neben dem Umweg über ein
vorangedrücktes Compose die Möglichkeit, den Compose-Mechanismus
selektiv tolerant gegen Fehleingaben zu machen. Statt dass dann die
gesamte bisherige Compose-Sequenz verworfen wird, wenn ein unbekanntes
Zeichen angehängt wird, werden dann sowohl die bisherige
Compose-Sequenz (bzw. ein Ersatzzeichen) und das darauf folgende,
nicht passende Zeichen ausgegeben.
Ganz genau diese Funktionalität hatte ich erhofft irgendwie
zusammenbasteln zu können – ¡Herzlichen Dank für die prompte und gewohnt
kompetente Umsetzung, Mœsi!
CF%Comp% kann nun bei fehlgeschlagenem Compose bewirken, dass eine bis
dahin gültige Sequenz nachträglich ausgegeben wird, wenn ein
unbekanntes Zeichen folgt.
Setzt man beispielsweise
CMU0000DF := 1
CDU0000DFU0000DF := "U00017FU000073"
dann bewirken die ersten beiden Zeilen, dass ein einzelnes ß erst mal
„tot“ wirkt, und mit einem zweiten ß wird „ſs“ draus.
Man kann nun diese Zeile anhängen:
CFU0000DF := "U0000DF"
Das bewirkt nun, dass das erste ß, wenn es von irgend einem anderen
Zeichen gefolgt wird, mit diesem dann (verzögert) ausgegeben wird, so,
als gäbe es für alle Compose-Möglichkeiten aus ß und anderem Zeichen
eine entsprechende Compose-Sequenz, die eben diese beiden Zeichen als
Ergebnis liefert. Normaler Weise würden beide Zeichen verschluckt
werden, da es keine entsprechende Compose-Sequenz gibt.
¡Super! Ich habe diesen Code gleich in meine Custom.ahk aufgenommen :-).
Und nach diesem »Stickmuster« kann man jetzt also quasi jedem beliebigem
Zeichen »Compose-Funktionalität ohne vorangstelltes Compose« verleihen –
oder vielleicht sollte man eher von »Live-Textersetzung« sprechen. Sehr
schön, ¡Danke nochmal! :-).
Viele Grüße,
Dennis-ſ