Opened 15 years ago
Last modified 13 years ago
#84 new Aufgabe/TODO
Die Programme „wiemitneo“ und „beschreibe“ sind noch in der Entwicklung
Reported by: | Erik Streb del Toro | Owned by: | |
---|---|---|---|
Priority: | niedrig | Milestone: | Neo Version 2.0 |
Component: | sonstiges | Version: | 2.0 BETA |
Keywords: | Cc: |
Description
Wenn ich dem Programm linux/bin/beschreibe folgendes übergebe:
beschreibe ①
wird mir folgendes angezeigt:
1) ① 2) ① welches Zeichen suchen Sie:
also zwei mal das gleiche. Warum? Egal was ich dann wähle (1 oder 2), es wird jedes mal das gleiche ausgegeben, nämlich
① ist nicht direkt auf der NEO-Tastatur Aber ① ist über Compose folgendermaßen darstellbar: <Multi_key> + <parenleft> + <1> + <parenright> <Multi_key> + <parenleft> + <KP_1> + <parenright>
Das Programm linux/bin/wiemitneo gibt mir dies auch direkt, ohne sinnlose Zwischenfrage aus. Wozu gibt es also das Programm linux/bin/beschreibe? Irgendwie redundant.
Change History (8)
comment:1 by , 15 years ago
follow-up: 3 comment:2 by , 15 years ago
Nein, noch besser:
Habe gerade das Skript angesehen. Puuuh, gar nicht kommentiert. Sehr schade, damit ist es fast nur für den Originalautor wartbar. Und das auch nur für kurze Zeit, bis er vergisst, was nochmal was macht.
Nun zum Vorschlag: Statt die Variable
ausgabe
jedes mal (und immer wieder!) mit 1 zu füllen, würde ich lieber die einzelnen gefundenen Zeichen in die Variable ausgabe schreiben. Jeweils mit Leerzeichen getrennt. Also erst die Zeichen, die in Compose gefunden wurden und dann die in der keysymdef.h in die Variable schreiben.
Dann Dopplungen weg, dann Auswahl ausgeben.
Beispielsweise so:
# die gefundenen Zeichen stehen in der Variable AUSGABE AUSGABE="1 1 2 4 5 8 1 3 5 7 8 2 2 9 9 9 9 0 1 0 1 0 1 3 4 5 6 7" # Dopplungen entfernen AUSGABE_SORTIERT=$(for i in $AUSGABE; do echo $i; done | sort | uniq) # Zähler für die Auswahl des richtigen Zeichens auf 1 setzen, danach ausgeben ZAEHLER=1 for i in $AUSGABE_SORTIERT; do echo "${ZAEHLER}) $i" ZAEHLER=$(($ZAEHLER+1)) # Zähler hochzählen done
Unicodeverträglich?
Funktioniert das auch mit sämtlichen verrückten Zeichen wie ①, ™, æ, ⅱ, usw? Ist jedenfalls sehr einfach, gut wartbar, verständlich, fehlerfreier (weniger Codezeilen) usw.
Ansonsten würde ich zumindest die Variable ausgabe ganz am Anfang initialisieren. Denn es könnte sein, dass diese schon existiert. Also am Anfang schreiben
ausgabe=0
oder ähnliches.
follow-up: 4 comment:3 by , 15 years ago
Replying to erik:
Unicodeverträglich?
Funktioniert das auch mit sämtlichen verrückten Zeichen wie ①, ™, æ, ⅱ, usw?
Bei mir unter Ubuntu 8.10 nicht, da macht schon ein
echo ① | cut -c1
wie es in der Art häufig im Scirpt verwendet wird, Probleme.
follow-up: 5 comment:4 by , 15 years ago
Replying to Björn Seifert bj@oern.de:
Replying to erik:
Unicodeverträglich?
Funktioniert das auch mit sämtlichen verrückten Zeichen wie ①, ™, æ, ⅱ, usw?
Bei mir unter Ubuntu 8.10 nicht, da macht schon ein
echo ① | cut -c1wie es in der Art häufig im Scirpt verwendet wird, Probleme.
Echt? Bei mir funktioniert es einwandfrei:
echo ①②③④ | cut -c2-4
ergibt ②③④. Ubuntu ist komisch.
comment:5 by , 15 years ago
Replying to erik:
Bei mir funktioniert es einwandfrei:
echo ①②③④ | cut -c2-4ergibt ②③④. Ubuntu ist komisch.
$ echo ①②③④ | cut -c2-4
ergibt ��.
$ echo ①②③④
funktioniert: ①②③④
$ locale LANG=de_DE.UTF-8 LANGUAGE=de_DE:de:en_GB:en LC_CTYPE="de_DE.UTF-8" LC_NUMERIC="de_DE.UTF-8" LC_TIME="de_DE.UTF-8" LC_COLLATE="de_DE.UTF-8" LC_MONETARY="de_DE.UTF-8" LC_MESSAGES="de_DE.UTF-8" LC_PAPER="de_DE.UTF-8" LC_NAME="de_DE.UTF-8" LC_ADDRESS="de_DE.UTF-8" LC_TELEPHONE="de_DE.UTF-8" LC_MEASUREMENT="de_DE.UTF-8" LC_IDENTIFICATION="de_DE.UTF-8" LC_ALL=
sollte ja passen.
$ cut --version cut (GNU coreutils) 6.10 Copyright © 2008 Free Software Found…
Die ist denke ich auch aktuell.
Aber mit dem Problem bin ich hier offtopic. ☺
comment:6 by , 15 years ago
Summary: | Das Programm „beschreibe“ macht doppelte Ausgaben → Die Programme „wiemitneo“ und „beschreibe“ sind noch in der Entwicklung |
---|---|
Type: | Fehler/Defekt → Aufgabe/TODO |
Sie Antwort in entsprechendem Thread der für Diskussionen besser geeigneten Mailingliste…
follow-up: 8 comment:7 by , 15 years ago
Hallo! Auch zum Thema "beschreibe":
$ beschreibe ä 1) Ä 2) Ä 3) ä 4) ä welches Zeichen suchen Sie: 1 • Ä gibt es direkt auf der NEO-Tastatur: cut: Trenner muss ein einzelnes Zeichen sein „cut --help“ gibt weitere Informationen. cut: Liste der Positionen fehlt „cut --help“ gibt weitere Informationen. cut: Liste der Positionen fehlt „cut --help“ gibt weitere Informationen. ...
Und so geht es dann weiter und weiter bis ich abbreche. Ich arbeite mit Debian Etch, was cut v5.97 mitliefert. Zu alt?
comment:8 by , 15 years ago
Replying to bened:
cut: Trenner muss ein einzelnes Zeichen sein „cut --help“ gibt weitere Informationen. cut: Liste der Positionen fehlt „cut --help“ gibt weitere Informationen. cut: Liste der Positionen fehlt „cut --help“ gibt weitere Informationen. ...Und so geht es dann weiter und weiter bis ich abbreche. Ich arbeite mit Debian Etch, was cut v5.97 mitliefert. Zu alt?
Mit cut 6.10 bei Ubuntu 8.10 das gleiche. Es liegt daran, dass Unicode-Zeichen als 2 Zeichen gesehen werden. Habe schonmal versucht, die Skripte umzuschreiben, dass sie awk/sed stattdessen nutzen (damit ging es bei mir), bin aber nicht weit gekommen und hab erstmal aufgegeben.
Gruß Björn
Ich schlage als Lösung zur Vermeidung der Dopplungen vor:
Dast ist wohl die einfachste und schnellste Lösung.