Im Terminal können keine Sonderzeichen oder Umlaute eingegeben werden

13

Umgebung:
Ich benutze Ubuntu 11.10 mit wmii 3.9 als GUI und uxterm als Terminal mit bash als Shell. Die Hardware ist ein Lenovo ThinkPad W500 mit einem schweizerdeutschen Tastaturlayout (daher brauche ich Umlaute). Ich benutze ibus für japanische Eingabe.

Symthome:
Wenn ich Tasten / Zeichen wie eingebe~ , passiert ^im Terminal nichts . Wenn ich ö' (arg: 6)' drücke , äpassiert nichts, ümitunter erscheint ein Befehl aus dem Verlauf.
Es ist das gleiche Verhalten in allen Terminals, die ich bisher getestet habe (Gnome-Terminal, XFCE4-Terminal, XTERM). Es funktioniert wie gewünscht in anderen X-Anwendungen wie Chrom-Browser, Skype oder Texteditoren.

Zusätzliche Information:

> locale
LANG=de_CH.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="de_CH.UTF-8"
LC_TIME="de_CH.UTF-8"
LC_COLLATE=en_US.UTF-8
LC_MONETARY="de_CH.UTF-8"
LC_MESSAGES=en_US.UTF-8
LC_PAPER="de_CH.UTF-8"
LC_NAME="de_CH.UTF-8"
LC_ADDRESS="de_CH.UTF-8"
LC_TELEPHONE="de_CH.UTF-8"
LC_MEASUREMENT="de_CH.UTF-8"
LC_IDENTIFICATION="de_CH.UTF-8"
LC_ALL=

> setxkbmap -print
xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc+ch+inet(evdev)+terminate(ctrl_alt_bksp)"    };
        xkb_geometry  { include "pc(pc105)"     };
};
jonas
quelle

Antworten:

17

Ich hatte ein ähnliches Problem beim Herstellen einer Verbindung über ssh mit Mac OS X mithilfe eines Terminalemulators. Obwohl ich LANG auf gesetzt hatte, de_DE.UTF-8konnte ich keine Zeichen mit Umlauten eingeben .

Das Update, das ich gefunden habe, war das Erstellen / Bearbeiten ~/.inputrc (oder Bearbeiten der folgenden Zeilen in /etc/inputrc):

set input-meta on
set output-meta on
set convert-meta off

Jetzt kann ich Umlaute eingeben. Ich glaube, das gilt allgemein für xterms.

Arcdale
quelle
Danke, das behebt das Umlautproblem! Aber ich kann immer noch keine Zeichen wie ~, ^ oder ¨ eingeben.
Jonas
Es hat das für mich auch irgendwie behoben (nach einem neuen Login), aber es gibt immer noch etwas Seltsames: Wenn ich ötippe, bekomme ich ein ö, aber es scheint auch ein verstecktes Zeichen zu geben: Ich kann die Rücktaste zwei Zeichen löschen, obwohl ich nur getippt habe eins ö. Das Eingeben LANG=de_DE.UTF-8der Befehlszeile ist für diese Sitzung fällig, wird jedoch in einer neuen Shell ausgeführt
rubo77
@ rubo77 Add export LANG=de_DE.UTF-8zu Ihrem~/.bashrc
naitsirch
5

Stellen Sie mit die richtigen Locales ein

sudo dpkg-reconfigure locales

Dort würdest du de_DE.UTF-8als deine Einstellung auswählen . Das löst alle Probleme;)

Info: Das Ändern des Wertes für set convert-meta offin /etc/inputrcfunktioniert nicht ganz:
Es hat diese Art von auch behoben, aber es gibt immer noch etwas Seltsames: Wenn ich ötippe, erhalte ich ein ö, aber es scheint ein verstecktes Zeichen vor dem ö zu geben: Ich kann lösche die Rücktaste zwei Zeichen obwohl ich nur ein ö eingegeben habe

rubo77
quelle
Vielen Dank für Ihre Antwort. Leider kann ich das Ergebnis Ihres Vorschlags nicht testen, da das System, bei dem dieses Problem aufgetreten ist, nicht mehr existiert. Außerdem verstehe ich nicht, warum das Ändern des Gebietsschemas von de_CH.UTF-8 zu de_DE.UTF-8 die Situation ändern sollte.
Jonas
Ich bin mir nicht sicher, ob ich vorher ein englisches Layout hatte. Aber vielleicht benutzt das Ch-Layout auch Deadkeys für ö?
Rubo77
Ja, de_CH ist das schweizerdeutsche Layout, es ist dem deutschen Layout sehr ähnlich.
Jonas
1
Ich denke, diese Antwort sollte für Benutzer bleiben, die ein ähnliches Problem haben, aber nicht das CH-Layout verwenden. Ich denke, die Lösung ist, dpkg-reconfigure localeserneut zu starten (nicht das von mir verwendete Layout)
rubo77
Einverstanden! Ich wünschte, ich könnte testen, ob es das Problem löst.
Jonas
-1

Zusätzlich zu den genannten Antworten kann es sein, dass Ihre Ländereinstellungen nicht kompiliert werden. Unter / usr / share befinden sich lokale Quelldateien und unter / usr / lib kompilierte lokale Dateien. Die Dateien unter / usr / lib sind möglicherweise beschädigt oder wurden nicht kompiliert, um zu beheben, dass Sie das Dienstprogramm localedef zum Kompilieren der Dateien verwenden können. Oder auf Debian-basierten Systemen dpkg-reconfigure.

Toasterson
quelle