Umlaute im Terminal

Dieses Thema im Forum "Mac OS X - Unix & Terminal" wurde erstellt von ThomasC, 07.06.2006.

  1. ThomasC

    ThomasC Thread Starter MacUser Mitglied

    Beiträge:
    32
    Zustimmungen:
    1
    MacUser seit:
    06.04.2006
    Es gibt viele, viele Threads dazu, und auch eine Menge Seiten an Tipps, die ich mittlerweile durch habe. Und dennoch: Ein Problem im Terminal ist geblieben und ich sehe keinen Weg mehr, da weiter zu kommen.

    In meiner .inputrc steht:
    set meta-flag on
    set convert-meta off
    set output-meta on
    set show-all-if-ambiguous on

    Terminal->Fenstereinstellungen->Darstellung:
    "Zeichensatz-Codierung (ISO Latin 9)"

    Terminal->Emulation->
    "Nicht ASCII-Zeichen in ESC-Sequenz wandeln"

    Damit kann ich: Umlaute eingeben und auch mittels <Backspace> oder <Del> wieder löschen, soweit alles in Ordnung.
    Gebe ich aber "ls /" ein, so kommt folgende Ausgabe (abgekürzt)

    BenutzerhandbuÌcher und Informationen@ Volumes/ Desktop DB automount/

    Es ist schwer hier darzustellen, wegen dem Umbruch, aber passieren tut folgendes: Das "ü" in Benutzerhandbücher wird als 2 Zeichen dargestellt (wirre Sonderzeichen) und die Spalten kommen durcheinander, so dass automount/ nicht unter Volumes/ steht sondern ein Zeichen verschoben.

    Setze ich im Terminal aber:

    Terminal->Fenstereinstellungen->Darstellung:
    "Zeichensatz-Codierung (Unicode UTF-8)"
    so habe ich einen anderen Effekt:

    Nun liefert ls / richtig "Benutzerhandbücher", dafür ist nun Volumes um 2 Spalten nach vorne verschoben und das Löschen von Umlauten bei der Eingabe geht nicht mehr. Gebe ich also z.B. "öööööööööööööööö" ein, und drücke dann solange <Backspace> oder <Del> bis alle Umlaute weg sind, so kann ich in den Prompt hinein löschen, und zwar für jeden gelöschten Umlaut genau ein Zeichen. Drücke ich dann die Eingabetaste so sagt mir die Bash dann:
    -bash: äää?: command not found
    Offenbar bleiben Teile (das 2. Byte des Unicode-Codes?) beim Löschen übrig, die dann Bash interpretieren will.

    Ah ja, der Vollständigkeit halber: ls ist ein Alias und macht
    ls -GFw (das -w führt erst dazu, dass ls Umlaute ausgeben will)

    Es hängt nicht mein Leben davon ab (momentan benutze ich Methode 1, da Verzeichnisnamen mit Umlauten eh selten sind und mich das Problem beim Löschen viel mehr stört), aber mich würde doch interessieren, ob jemand eine komplett 100% funktionsfähige Einstellung des Terminals kennt.
    bash --version liefert 2.05b.0(1), interessanterweise genau dieselbe Version, die auf einem Linux Debian Server in der Arbeit BEIDE Probleme nicht hat. Nur gelingt es mir einfach absolut nicht, einen wesentlichen Unterschied in irgendwelchen Konfig-Dateien zu finden.

    Noch eine Idee?

    Viele Grüße
    Thomas
     
  2. wacker

    wacker MacUser Mitglied

    Beiträge:
    3
    Zustimmungen:
    0
    MacUser seit:
    10.07.2006
    Habe das selbe Problem mit UTF-8.

    Komischerweise funktioniert <Backspace> korrekt, nachdem die Shell neu gestartet wurde (z.B. mit dem Kommando "exec bash").

    Es muss irgendwie mit Readline (den inputrc-Einstellungen) und den Terminal-Fenstereinstellungen zutun haben.
     
    Zuletzt bearbeitet: 10.07.2006
  3. wacker

    wacker MacUser Mitglied

    Beiträge:
    3
    Zustimmungen:
    0
    MacUser seit:
    10.07.2006
    hässlicher Hack:

    exec bash

    an /etc/profile anhängen.

    Achtung: Ein Nebeneffekt ist, dass ~/.profile nicht mehr ausgeführt wird.
     
    Zuletzt bearbeitet: 10.07.2006
  4. wacker

    wacker MacUser Mitglied

    Beiträge:
    3
    Zustimmungen:
    0
    MacUser seit:
    10.07.2006
    Fehlerbild:
    (stark vereinfacht - geeignet für Bugreport?)

    1.
    Aktivierung der Bash-Unicode-Ein/Ausgabe im Standard-Tiger-Terminal durch folgende Zeilen in ~/.inputrc:
    set input-meta on
    set convert-meta off
    set output-meta on
    und folgende Zeile in ~/.bash_profile:
    export LANG=en_US.UTF-8

    2.
    Nach dem Start des Terminals wird durch "env" sichtbar, dass LANG wie gewünscht gesetzt ist.

    3.
    Symptom: <Backspace> löscht Umlaute nicht korrekt.

    4.
    Wird während der Sitzung mit "export LANG=en_US.UTF-8" die Variable erneut "von Hand" auf den selben Wert gesetzt, oder mit "bash" eine neue Shell gestartet bzw. mit "exec bash" die Shell ersetzt, funktioniert <Backspace> korrekt.

    any ideas?
     
  5. christian l

    christian l MacUser Mitglied

    Beiträge:
    299
    Zustimmungen:
    46
    MacUser seit:
    03.09.2002
    Ich werde nie verstehen, weshalb Apple nicht UTF-8 als (funktionierendes) default für das Terminal verwendet. Im Rest des Systems ist alles perfekt internationalisiert...
     
  6. ember

    ember MacUser Mitglied

    Beiträge:
    3
    Zustimmungen:
    1
    MacUser seit:
    13.07.2006
    moin


    soweit ich weiß ist die bash erst ab Version 3 und unter Verwendung von readline Version 5 unicodefähig.

    Also - denke ich - heißt es warten bis apple diese Versionen verwendet oder diese Versionen über darwinports installieren.


    Grüße,

    ember

    (endlich auf den Mac zurück gekehrt ;) )
     
  7. tastendruecker

    tastendruecker MacUser Mitglied

    Beiträge:
    16
    Zustimmungen:
    0
    MacUser seit:
    13.09.2005
    Eine durchschnittliche Linux-Distri widerlegt Deine Aussage seit Jahren.

    Es war schon vor 6 Jahren eine tolle Leistung von Apple
    UTF-8 auf die Fahne zu schreiben und auf tcsh zu setzen.
    (Mittlerweile soll allerdings sogar tcsh unicode verarbeiten können.)
     
  8. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    46.810
    Zustimmungen:
    3.633
    MacUser seit:
    23.11.2004
    seit 10.4 ist die standard-shell bash...
    nur wenn man von 10.3 auf 10.4 updated behält man tcsh als standard-shell...
     
  9. ember

    ember MacUser Mitglied

    Beiträge:
    3
    Zustimmungen:
    1
    MacUser seit:
    13.07.2006
    moin

    hm. Siehe zB hier

    http://de.gentoo-wiki.com/Utf8#Shells

    oder hier:

    http://www.tldp.org/HOWTO/Unicode-HOWTO-4.html#ss4.1

    Anscheinend gibt es für die bash ab 2.04 einen Patch, der sie unicodefähig macht; das war mir entgangen. Von Haus aus (dabei bleibe ich aber :o) hat die bash erst seit Version 3 weitreichende Unicode-Unterstützung.

    Merke: das sagt nix über die Unicode-Unterstützung zB in gtk oder qt aus - diese gibt es schon länger.

    Ach so: meine Experimente zum Thema "Unicode + MacOS X" mit einem Bonus bezüglich gvim kann der Interessierte

    hier

    nachlesen.

    Grüsse,

    Ember

    (btw nutze ich seit div. Jahren hauptsächlich gentoo auf Workstation + Server und habe da schon einige Erfahrungen mit dem leidigen Thema "Unicode" machen dürfen. Ok, aber vielleicht ist gentoo ja keine "durchschnittlichen Linuxdistributionen".)
     
  10. tastendruecker

    tastendruecker MacUser Mitglied

    Beiträge:
    16
    Zustimmungen:
    0
    MacUser seit:
    13.09.2005
    Man sollte nicht alles glauben, was gentoo wiki schreibt.
    Bash hat seit Version 2.05b Unicode-Support
    (Readline 4.13)

    Beide Pakete wurden am 18 Juli 2002 veröffentlich.
    (Also vor 4 Jahren)

    Du kannst also davon ausgehen, dass Gentoo es viel früher konnte.

    MfG
     
Die Seite wird geladen...

Diese Seite empfehlen